Mybatis

一、Mybatis简介 

  Mybatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。Mybatis使用简单的XML或注解用于配置和原始映射,将接口和javaPOJOs映射成数据库的记录。

     MyBatis任务:
  1.
根据 JDBC 规范建立与数据库的连接;
  2.
通过Annotaion/XML+JAVA反射技术,实现 Java 对象与关系数据库之间相互转化。

二.Mybatis与hibernate区别:

Mybatis

1、轻量级的半自动的框架,侧重于POJOSQL语句的映射,并完美支持对存储过程的映射

2、注重POJOSQL之间的映射关系。不会为程序员在运行期自动生成 SQL

3、自动化程度低、手工映射SQL灵活程度高

4、需要开发人员熟炼掌据SQL语句

Hibernate

1、提供从 POJO 到数据库表的全套映射机制

2、会自动生成全套SQL语句。

3、因为自动化程度高、映射配置复杂,api也相对复杂,灵活性低

4、开发人同不必关注SQL底层语句开发

三.Mybatis核心接口与方法- SqlSessionFactory

SqlSessionFactory实例为Mybatis切入点,使用MyBatis提供的一系列数据访问功能。SqlSessionFactory实例是SqlSession的工厂类,通过SqlSessionFactory获取SqlSession实例

import org.apache.ibatis.io.Resources;

……

private static SqlSessionFactorysqlSessionFactory = null;

……

if (sqlSessionFactory == null) {

  String rs = "Configuration.xml";

  Reader reader = null;

  try {

  reader = Resources.getResourceAsReader(rs);

  } catch (IOException e) {

  e.printStackTrace();

  }

  sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);

}

四、Mybatis核心接口与方法- SqlSession

SqlSession是使用MyBatis的最主要的接口。通过这个接口你可以执行命令、获取映射以及管理事务。

SqlSession 的获取

Reader reader = Resources.getResourceAsReader("configuration.xml"); 

SqlSessionFactorysqlSessionFactory =  new SqlSessionFactoryBuilder().build(reader);

SqlSessionsqlSession = sqlSessionFactory.openSession();

dataSource数据源类型有三种: UNPOOLED POOLED JNDI

UNPOOLED - 这个数据源实现只是在每次请求的时候简单的打开和关闭一个连接。虽然这有点慢,但作为一些不需要性能和立即响应的简单应用来说 ,不失为一种好选择 。

POOLED - 这个数据源缓存 JDBC 连接对象用于避免每次都要连接和生成连接实例而需要的验证时间 。对于并发 WEB 应用,这种方式非常流行因为它有最快的响应时间。

JNDI - 这个数据源实现是为了准备和 Spring 或应用服务一起使用,可以在外部也可以在内部配置这个数据源,然后在 JNDI 上下文中引用它。

原文地址:https://www.cnblogs.com/charles-dxb/p/3586465.html