MyBatis框架

Java笔记(一)

    • 反射机制
    • MyBatis框架

反射机制

反射机制(Java Reflection)是动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。(JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。)

正射:直接通过new实例化创建对象,然后使用这个对象对类进行操作。

MyBatis框架

  1. 通过封装JDBC实现ORM机制的框架
  2. mybatis原理图MyBatis框架_第1张图片
    3.API
    1. SqlSessionFactoryBuilder类:读取XML文件信息本质Dom4j封装

    2. SqlSessionFactory接口:MyBatis提供这个接口的实现类 DefaultSqlSessionFacotry类。
      1)根据mybatis核心配置要求使用指定的数据库连接池对象创建若干个Connection用于数据传输
      2)创建SqlSession对象
      3)SqlSession接口: MyBatis框架提供这个接口的实现类 DefaultSqlSession。
      1)调用PreparedStatment,ResultSet 来推送sql语句并接收返回结果
      2)负责sql语句执行时事务管理
      3)负责ORM机制实现实体类对象的属性的值赋值到sql语句中占位符ResultSet中数据行赋值到对应的实体类的对象中

4.需要的jar包: 1.mybatis.jar 2.mysql-jdbc.jar 在mvnrepository网站查找

5.SqlSession对事务的管理方式

1.在mybatis核心配置文件通过指定事务管理方案
  表示事务由connection负责

2.SqlSession对事务管理管理实际上就是对Connection管理

  1) SqlSession session = factory.openSession(true)
     “true”表示connection根据执行状态自行决定commit还是rollback

  2) SqlSession session = factory.openSession(false)
      “false”表示由sqlSession来通知connection是commit还是rollback     
  3) SqlSession session = factory.openSession()
        与openSession(false)一致

6.resultType:

1.ORM机制有一个观点,应该自动完成ResultSet中数据与实体类对象
  中属性的赋值,而不应该由人工开发完成

2.在
      select * from dept
  
3.当使用resultType属性时,要求实体类的属性名必须与临时表字段名
  相同

7.typeAlias—类型别名

1.typeAlias是mybatis核心配置文件中的一个标签
2.用于设置实体类的全限定名的别名
3.这样降低实体类在resultType,resultMap,paramertType中使用难度

8.resultMap

1. resultMap是select标签中一个属性.
2. resultType要求实体类的属性名必须与查询得到临时表
   中的字段名相同。如果实体类的属性名与查询得到临时表
   的字段名不相同,此时可以使用resultMap来手动将临时表
   中字段与实体类的属性名进行对应

9.parameterType

1.parameterType是insert,update delete标签中一个属性
2.通知SqlSession,DML语句中占位符赋值的类型
3.parameterType可以是一个基本类型也可以引用类型。
4.如果parameterType是引用类型,要求占位符的名称
  必须是引用类型的属性名

10.dao代理服务:

 1.MyBatis框架提供哪些服务:
   1)封装了JDBC流程
   2)简化了ORM实现(resultType,parameterType)
   3)dao代理服务

 2.dao代理服务:
    由MyBatis简化Dao层开发负担。在这种服务下,开发人员
只需要[开发dao接口]和[sql映射文件],不需要开发Dao
接口实现类,由MyBatis框架负责在内存中创建对应的Dao
接口实现类以及这个实现类的实例对象

 3.如何获得dao代理服务:

    1) sql映射文件的名称与对应的Dao接口名必须相同,包括大小写
   DeptDao------DeptDao.xml
    2) sql映射文件必须与对应的Dao接口在同一个包下
   com.bjpowernode.dao.DeptDao
   com.bjpowenrode.dao.DeptDao.xml
    3) sql映射文件中sql语句的ID编号必须与对应的Dao接口中
   的方法名相同
       com.bjpowernode.dao.DeptDao.insert(Dept dept)
   com.bjpowernode.dao.DeptDao.xml
     
         insert into dept valuexxxxxx
     
     4)sql映射文件的namespace的值必须是对应的Dao接口的全限定名
     
 4.获得MyBatis框架提供的Dao实现类的实例对象
 
 SqlSession session = SqlSessionUtil.openSession(true);
 Dao接口 dao实例对象 = session.getMapper(Dao接口.class)

你可能感兴趣的:(java,开发语言,后端)