Mybatis入门02

1.回顾mybatis的自定义再分析
1.SqlSessionFactoryBuilder接收SqlMapConfig.xml文件流,构建出SqlSessionFactory对象。

2.SqlSessionFactory读取SqlMapConfig.xml中连接数据库和mapper映射信息。用于生产出真正操作数据的SqlSesion对象

SqlSession对象的两大作用:
1.生成接口代理对象
1)先用SqlSessionFactory读取的数据库连接信息创建Connection对象
2)通过jdk代理模式创建出代理对象作为getMapper()方法的返回值。这里的抓哟工作是在创建代理对象时第三个参数处理类中得到sql语句。执行对应CRUD操作
3)封装结果集:我们需要对返回的数据库结果集进行封装,变成java对象返回给调用者,所以我们必须知道调用者需要的返回值类型。

补充:基于注解实现的mybatis
1.在持久层接口中添加注解
2.修改SqlMapConfig.xml文件,且不再需要IUser.xml配置文件,因为已经在持久层接口中添加了注解。

对比一下两种方式:
XML:需要编写SqlMapConfig.xml和IUser.xml 两个配置文件,持久层接口不需要注释
注解:需要编写SqlMapConfig.xml和在持久层接口中写注释。把本来接口映射文件中的resouce改成class 注意编写路径的方式

通过快速入门示例,我们发现使用mybatis 是非常容易的一件事情,因为只需要编写Dao接口并且按照
mybatis要求编写两个配置文件,就可以实现功能。远比我们之前的jdbc方便多了。(我们使用注解之后,将变得
更为简单,只需要编写一个mybatis配置文件就够了。)
但是,这里面包含了许多细节,比如为什么会有工厂对象(SqlSessionFactory),为什么有了工厂之后还
要有构建者对象(SqlSessionFactoryBuilder),为什么IUserDao.xml在创建时有位置和文件名的要求等等。

猜你喜欢

转载自www.cnblogs.com/YoungLiu/p/12324844.html