1.什么是mybatis?
Mybatis是一个优秀的持久层框架,他对jdbc(要回顾)的操作数据库的过程进行了封装,使开发者只需要关注SQL本身,而不需要去花费精力去处理注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc复杂的过程代码。
(1).mybatis-config.xml是Mybatis的核心配置文件,通过其中的配置可以生成SqlSessionFactory,也就是SqlSession工厂。(工厂模式)
(2).基于SqlSessionFactory可以生成SqlSession对象。
(3).SqlSessions是一个既可以发送SQL去执行,并返回结果,类似于JDBC中的Connection对象,也是Mybatis中至关重要的一个对象。
(4).Executor是SqlSession底层的对象,用于执行SQL语句。
(5).MapperStatement对象也是SqlSession底层的对象,用于接收输入映射(SQL语句中的参数),以及做输出映射(即将SQL查询的结果映射成相应的结果)
2.Mybatis快速入门。
(1).准备数据,创建库和表(略)
(2).导入所需要的jar包(junit、mysql、mybatis、log4j)
在pom.xml中引入相关依赖即可:
(3).在resource目录下添加mybatis-config.xml文件
文件头信息:
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
(4).mybatis-config的详细配置信息如下:
(5)编写EmpMapper.xml文件
头信息如下:
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
详细信息如下:
sql语句
(6).通过工厂模式执行sql语句的代码如下:
1.读取mybatis-config.xml的核心配置文件
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
2.根据配置文件获取一个SqlSessionFactory工厂对象
SqlSessionFactory fac = new SqlSessionFactoryBuilder().build(In);
3.通过工厂获取一个SqlSession对象
SqlSession session = fac.openSession();
//4.通过namespace+id找到要执行的sql语句并执行sql语句
List
.selectList("EmpMapper.findAll");
5.输出结果
优化:使用mapper接口开发。
开发步骤:
1.创建一个接口,接口的全限定类名要与mapper文件的namespace值一样。
2.在接口中提供方法,方法名要与mapper文件中sql标签上的id值一致。
3.mapper接口中方法接收的参数类型要和mapper.xml中的sql语句接收的参数类型相同。
4.接口方法中的返回值类型和sql标签上的resultTyype的类型相同(如果方法返回值是集合,resultType只需要指定集合中的泛型)。
5.创建测试类:
1.读取mybatis-config.xml的核心配置文件
InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
2.根据配置文件获取一个SqlSessionFactory工厂对象
SqlSessionFactory fac = new SqlSessionFactoryBuilder().build(In);
3.通过工厂获取一个SqlSession对象
SqlSession session = fac.openSession();
4.获取Mapper接口对象
EmpMapper map = session.getMapper("EmpMapper.class");
5.调用接口对象的方法进行查询
List
6.输出结果