1.什么是MyBatis?
MyBatis(前身是iBatis)是一个支持普通SQL查询、存储过程以及高级映射的持久化框架,它消除了几乎所有的JDBC代码和参数的手动设置以及对结果集的检索,并使用简单的XML或注解进行配置和原始映射,用以将接口和Java的POJO(Plain Old Java Object,普通Java对象)映射成数据库中的记录,使得Java开发人员可以使用面向对象的编程思想来操作数据库。
2.下载
https://github.com/mybatis/mybatis-3/releases
3.MyBatis框架在操作数据库时,大体经过了8个步骤。
(1)读取MyBatis配置文件mybatis-config.xml。mybatis-config.xml作为MyBatis的配置文件,配置了MyBatis的运行环境等信息,其中主要内容是获取数据库连接。
(2)加载映射文件Mapper.xml。Mapper.xml文件即SQL映射文件,该文件中配置了操作数据库的SQL语句,需要在mybatis-config.xml中加载才能执行。mybaits-config.xml可以加载多个配置文件,每个配置文件对应数据库中的一张表。
(3)构建会话工厂。通过MyBatis的环境等配置信息构建会话工厂SqlSessionFactory.
(4)创建SqlSession对象。由会话工厂创建SqlSession对象,该对象中包含了执行SQL的所有方法。
(5)MyBatis底层定义了一个Executor接口来操作数据库,它会根据SqlSession传递的参数动态地生成需要执行的SQL语句,同时负责查询缓存的维护。
(6)在Executor接口的执行方法中,包含一个MappedStatement类型的参数,该参数是对映射信息的封装,用于存储要映射的SQL语句的id、参数等。Mapper.xml文件中一个SQL对应一个MappedStatement对象,SQL的id即是MappendStatement的id.
(7)输入参数映射。在执行方法时,MappedStatement对象会对用户执行SQL语句的输入参数进行定义,Executor执行器会通过MappedStatement对象在执行SQL前,将输入的Java对象映射过程就类似于JDBC编程中对preparedStatement对象设置参数的过程。
(8)输出结果映射。在数据库中执行完SQL语句后,MappedStatement对象会对SQL执行输出的结果进行定义,Execcutor执行器会通过MappedStatement对象在执行SQL语句后,将输入结果映射至Java对象中。这种将输出结果映射到Java对象的过程就类似于JDBC编程中对结果的解析处理过程。
4.MyBatis入门程序的操作步骤:
(1) 读取配置文件.
(2) 根据配置文件构建SqlSessionFaactory.
(3) 通过SqlSessionFactory创建SqlSession.
(4) 使用SqlSession对象操作数据库(包括查询、添加、修改、删除以及提交事务等).
(5) 关闭SqlSession.
注意:增删改都需要通过SqlSession的commit()方法提交事务。