Mybatis学习笔记Ⅱ

系列文章目录
Mybatis学习笔记Ⅰ
Mybatis缓存机制



一、Mybatis API

(1)SqlSession 中封装了对数据库的操作,如:查询、插入、更新、删除等。
(2)通过SqlSessionFactory创建SqlSession, 而 SqlSessionFactory 是 通 过 SqlSessionFactoryBuilder 进行创建。

1.SqlSessionFactoryBuilder

SqlSessionFactoryBuilder 用于创建 SqlSessionFacoty,SqlSessionFacoty 一旦创建完成就不需要 SqlSessionFactoryBuilder 了,因为 SqlSession 是通过 SqlSessionFactory 生产,所以可以将 SqlSessionFactoryBuilder当成一个工具类使用,最佳使用范围是方法范围即方法体内局部变量。

2.SqlSessionFactory

SqlSessionFactory是一个接口,接口定义了openSession的不同重载方法,SqlSessionFactory 的最佳使用范围是整个应用运行期间,一旦创建后可以重复使用,通常以单例模式管理SqlSessionFactory。

3.SqlSession

SqlSession 是一个面向用户的接口, sqlSession 中定义了数据库操作,默认使用 DefaultSqlSession 实现类。

二、原始 Dao 开发方式

需要编写 Dao 接口和 Dao 实现类
具体代码参考Mybatis学习笔记Ⅰ

问题:
①Dao 方法体存在重复代码:通过 SqlSessionFactory 创建 SqlSession,调用 SqlSession 的数据库操作方法
②调用 sqlSession 的数据库操作方法需要指定 statement 的 id,这里存在硬编码,不利于开发维护。

三、Mapper 动态代理

Mapper 接口开发方法只需要程序员编写 Mapper 接口(相当于 Dao 接口),由 Mybatis 框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边 Dao 接口实现类方 法。Mapper 接口开发需要遵循以下规范:

  1. Mapper.xml 文件中的 namespace 与 mapper 接口的类路径相同。
  2. Mapper 接口方法名和 Mapper.xml 中定义的每个 statement 的 id 相同
  3. Mapper 接口方法的输入参数类型和 mapper.xml 中定义的每个 sql 的 parameterType 的 类型相同
  4. Mapper 接口方法的输出参数类型和 mapper.xml 中定义的每个 sql 的 resultType 的类型相同

四、mybatis-config.xml 配置文件

mybatis-config.xml 中配置的内容和顺序如下:
properties(属性)
settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments(环境集合属性对象)
   environment(环境子属性对象)
       transactionManager(事务管理)
        dataSource(数据源)
mappers(映射器)

五、Mapper.xml 映射文件

1.parameterType(输入类型)

2.resultType(输出类型)

3.resultMap


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值