一、Mybatis简介
Mybatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。Mybatis使用简单的XML或注解用于配置和原始映射,将接口和java的POJOs映射成数据库的记录。
MyBatis任务:
1.根据 JDBC 规范建立与数据库的连接;
2.通过Annotaion/XML+JAVA反射技术,实现 Java 对象与关系数据库之间相互转化。
二.Mybatis与hibernate区别:
Mybatis
1、轻量级的半自动的框架,侧重于POJO到SQL语句的映射,并完美支持对存储过程的映射。
2、注重POJO与SQL之间的映射关系。不会为程序员在运行期自动生成 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 上下文中引用它。