mybatis解析
博客专区 > xiejunbo 的博客 > 博客详情
mybatis解析
xiejunbo 发表于3年前
mybatis解析
  • 发表于 3年前
  • 阅读 31
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

一、SqlSession的使用方法

SqlSession通过 SqlSessionFactory来创建,sqlSessionFactory是线程安全的,sqlSessionFactory通常使用单例来管理。如果和spring整合后,通过spring容器以单例方式来管理sqlSessionFactory.

SqlSession是面向用户的接口,定义了操作数据库的方法(selectOne,selectList,insert,update,delete).

sqlSession的接口实现类是线程不安全的,SqlSession不能在类中定义为成员变量来使用,最佳使用场合是方法体内定义一个局部变量。

二、spring和mybatis整合

在spring的配置文件中定义SqlSessionFactory,如果和spring整合,sqlSessionFactory的类不是mybatis框架本身的类org.apache.ibatis.session.SqlSessionFactory,而是mybatis-spring-1.2.2.jar包中的SqlSessionFactory.

第一步:加入相关依赖包:spring的依赖包,mybatis-spring.jar整合包,+数据依赖包+其他包。

第二步:配置mybatis配置文件。

第三步:配置spring配置文件。

配置 SqlSessionFactory,dataSource,mapper.

原始DAO开发方法:

程序员要编写dao接口和DAO实现类,需要在DAO实现类中注入SqlSessionFactory.

将SqlSessionFactory让spring容器使用单例模式管理。

Dao实现类继承org.mybatis.spring.support.SqlSessionDaoSupport.和spring整合后,由于继承SqlSessionDaoSuppor通过Spring注入会话工厂SqlSessionFactory,在dao实现类中不需要人为关闭SqlSession.

动态代理方法:

使用mybatis提供的动态代理方法创建mapper对象,只需开发mapper接口和mapper映射文件,且mapper接口和mapper映射文件需要遵循一些规则:

  1. Mapper接口方法名和mapper.xml中定义的每个sql的id相同。

  2. Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql的parameterType的类型相同。

  3. Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同。

  4. Mapper.xml文件中的namespace即是mapper接口的类路径。

在spring容器中配置 mapper的扫描器,由扫描器扫描出mapper接口和mapper的映射文件,从而动态生成mapper接口的动态代理对象(mapper的实现类的对象),产生的动态代理对象在spring的容器中自动注册。一个扫描顺可以扫描出多个mapper接口,可以生成多个mapper动态代理对象 。

三、动态SQL.

自定义查询条件,查询用户信息(一个列表)。

查询单个用户列表信息和用户列表总数使用相同的查询条件。

用户列表和用户列表总数可以分页实现 。

==================================================




  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 40
博文 144
码字总数 132589
×
xiejunbo
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: