常用的api

  • sqlSessionFactoryBuilder
    • 通过sqlSessionFactoryBuilder创建会话工厂SqlSessionFactory
    • 将SqlSessionFactoryBuilder当成一个工具类使用就可以,不需要使用单例管理SqlSessionFactoryBuilder
    • 在需要创建SqlSessionFactory时候,只需要new一次SqlSessionFactory即可
  • sqlSessionFactory
    • 通过SqlSessionFactory创建SqlSession,使用单例模式进行管理(一个项目只需要使用一个SqlSessionFactory)
    • 和spring整合后,可以通过spring配置实现单例
  • SqlSession
    • SqlSession是一个面向用户的接口
    • SqlSession中提供了很多的操作数据库的方法:
    • SqlSession是线程不安全的,在SqlSession中除了有接口中定义的方法,还有数据域属性
    • SqlSession最佳的应用场合是在方法体内部,定义局部变量使用

原始方式dao开发方法(需要写dao接口和dao实现类)

  • dao:
    • 定义的接口mybatis开发dao层
    • 接口实现类:mybatis开发dao层
  • 映射配置文件还是使用User.xml
  • 测试代码:mybatis开发dao层
  • ==原始dao开发存在的问题==
    • dao接口的实现类中,有大量的模板方法(相同的代码)
    • 调用到的sqlSession的 方法的statement的id被硬编码了
    • sqlSession方法传入的第二个参数,由于使用的是泛型,没有约束,在编译阶段不能察觉到错误

mapper代理的方式(只需要写mapper接口)

  • 编写mapper.xml映射文件
    • namespace属性值:mapper接口的全路径地址 mybatis开发dao层
  • 编写mapper接口(相当于dao接口)mybatis开发dao层
    • 接口中的方法名和mapper.xml映射配置文件的statement的id一致
    • 接口中方法的输入参数类型和mapper.xml中的statement的parameterType属性定义的类型是一致的
    • 接口中方法的返回值类型和mapper.xml中的statement的resultType属性定义的类型一致、mybatis开发dao层
  • 在sqlMapConfig.xml配置文件中引入映射配置文件mapper.xmlmybatis开发dao层
  • mybatis可以自动生成mapper接口实现类代理对象
    • 如果代理对象调用方法返回的是一个非集合对象,那么代理对象内部通过selectOne查询数据库
    • 如果代理对象方法返回集合对象,代理对象内部通过selectList查询数据库
  • 使用mapper代理的方式只能传入一个参数,可以通过包装类进行扩展
  • 测试:mybatis开发dao层

相关文章:

  • 2022-12-23
  • 2022-01-08
  • 2022-12-23
  • 2021-12-05
  • 2022-12-23
  • 2021-09-10
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2018-12-13
  • 2021-11-09
  • 2021-10-06
  • 2021-09-12
  • 2021-09-27
  • 2022-12-23
相关资源
相似解决方案