对本博客的mybatis重新读一下,做一个整理。如下:

1:为什么会有mybatis,因为原生的jdbc方式有很大问题:

(1)数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能。

设想:使用数据库连接池管理数据库连接。

(2)、将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于系统维护。

设想:将sql语句配置在xml配置文件中,即使sql变化,不需要对java代码进行重新编译。

(3)、向preparedStatement中设置参数,对占位符号位置和设置参数值,硬编码在java代码中,不利于系统维护。

设想:将sql语句及占位符号和参数全部配置在xml中。

(4)、从resutSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,,不利于系统维护。

设想:将查询的结果集,自动映射成java对象。

 

2:mybatis开发流程:

(1)先建立下SqlSessionFactoryBuilder:通过SqlSessionFactoryBuilder创建会话工厂SqlSessionFactory

(2)通过SqlSessionFactory创建SqlSession,使用单例模式管理sqlSessionFactory(工厂一旦创建,使用一个实例)。将来mybatis和spring整合后,使用单例模式管理sqlSessionFactory。

(3)sqlSession的诞生过程是这样的:通过SqlSessionFactory创建一个SqlSession.

 

3:DAO开发分成两个方面:

  (1)传统的DAO方式:

程序员需要写dao接口以及dao的实现类。

在DAO的实现类中有变量:SqlSessionFactory 。

34对MyBatis的博客的整理心得

 

这个SqlSessionFactory变量在测试方法中写入。

 34对MyBatis的博客的整理心得

 

 (2)Mapper的开发方式


我先给出mapper代理开发的思路(mapper代理开发的规范):

我们用mapper代理开发时要写2个:

1.mapper.xml

2.mapper接口

  我们写的mapper接口只要需要遵循一些开发规则,mybatis可以自动生成mapper接口实现类代理对象。(这句话很重要)

 

我们重点讲一下开发规则:

开发规范:

1、在mapper.xml中namespace等于mapper接口地址

 34对MyBatis的博客的整理心得

 

2、mapper.java接口中的方法名和mapper.xml中statement的id一致

 mapper.xml中是这样的:

34对MyBatis的博客的整理心得

mapper.java接口应该是这样的:

34对MyBatis的博客的整理心得

名字要一模一样的。

3、mapper.java接口中的方法输入参数类型和mapper.xml中statement的parameterType指定的类型一致。

 

4、mapper.java接口中的方法返回值类型和mapper.xml中statement的resultType指定的类型一致。

 34对MyBatis的博客的整理心得

34对MyBatis的博客的整理心得


 

 

4:在写mapper.xml时,里面有映射。分为两种:resultType和resultMap:

resultType,pojo的名字和mapper.xml中配置的名字一模一样才能映射成功。

resultMap没有上面的要求,可以自己建立映射关系。

一对多怎么映射:用collection。

多对多怎么映射:用collection。

 

 

 

5:与spring的整合

(1)原始DAO开发的整合方式:

我们以前要用Mybatis是需要sqlMapConfig.xml(这个配置文件需要配置dataource,以及mapper.xml文件。)原始的sqlMapConfig.xml如下:


34对MyBatis的博客的整理心得

 


 

 

 

现在我们加入spring之后,database就要交给spring的配置文件applicationContext.xml来处理了。而且我们以前在用Dao时,传统的做法是要在Dao类中有SqlSessionFactory,现在用Spring之后,最主要的改变就是这里了。

需要spring通过单例方式管理SqlSessionFactory。

spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession。(spring和mybatis整合自动完成)

application.xml的配置文件如下:

34对MyBatis的博客的整理心得

 

 (2)mapeer代理开发整合:


 

 34对MyBatis的博客的整理心得

 

 34对MyBatis的博客的整理心得

 

 34对MyBatis的博客的整理心得

34对MyBatis的博客的整理心得

34对MyBatis的博客的整理心得

 

 34对MyBatis的博客的整理心得

 

 34对MyBatis的博客的整理心得

34对MyBatis的博客的整理心得

34对MyBatis的博客的整理心得

34对MyBatis的博客的整理心得

 

相关文章:

  • 2021-11-30
  • 2021-11-08
  • 2021-08-01
  • 2021-04-23
  • 2022-12-23
  • 2021-06-20
  • 2021-07-29
猜你喜欢
  • 2021-10-09
  • 2022-12-23
  • 2021-07-27
  • 2022-12-23
  • 2021-04-21
相关资源
相似解决方案