spring整合mybatis

1.背景介绍
很多项目中使用到了mybatis框架,一般也都是把mybatis集成在spring中。为什么要使用mybatis,以及使用mybatis优势在哪,这个往往是我们要关心以及要弄明白的地方。
     mybatis官网给出的定义:MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。、
2.知识剖析
mybatis框架使用实际上是优化了dao实现层,我们都知道dao层是与数据库打交道,dao层定义接口,dao实现层相关代码实现数据的增删改查操作。
而mybatis的使用,直接省去了dao实现层的代码,通过配置文件实现映射。框架内部会自动把mybatis配置文件转为dao实现层代码,实现数据的增删改查操作。
其本质都是一样的。所以,为什么我们使用mybatis,是因为它代码实现起来,更加简洁,通过配置文件映射更加直观。我们使用时,只需遵循它的配置规则即可。
那么mybatis和spring整合mybatis的差别在哪?
首先我们要说一下SqlSession, SqlSession是MyBatis的关键对象,它是应用程序与持久层之间执行交互操作的一个单线程对象, 类似于JDBC中的Connection
在MyBatis 中,session 工厂可以使用 SqlSessionFactoryBuilder 来创建。而在 MyBatis-Spring 中,则使用 SqlSessionFactoryBean来替代。
MapperFactoryBean这个类的作用是:
将传统Mybatis调用数据库的方式:
xxxMapper mapper = sqlSession.getMapper(xxxMapper.class);
变成xxxMapper mapper = context.getBean(“xxxMapper”);
也就是将mybatis的对象由spring以bean的方式管理。
形成了一一对应关系,方便在service层直接注入使用。
3.常见问题
1.使用xml的时候,如果不在Spring配置文件里面配置Mapper.xml,该怎么办
2. 注解方式和xml方式具体在那种情况下使用,什么情况下用注解方式更好,什么情况下用xml方式更好?
1. mapper接口和xml放在一个文件下会自动扫描到。
2.
(1) 首先官方也是推荐使用 xml。

(2) 注解方式拼接动态 sql 功能有限。

(3)注解使用比较简单。

 

4.编码实战

5.扩展思考
SqlFactoryBean的一些常见属性
mapperLocations:它表示我们的Mapper文件存放的位置,当我们的Mapper文件跟对应的Mapper接口处于同一位置的时候可以不用指定该属性的值。
configLocation:用于指定Mybatis的配置文件位置。如果指定了该属性,那么会以该配置文件的内容作为配置信息构建对应的SqlSessionFactoryBuilder,但是后续属性指定的内容会覆盖该配置文件里面指定的对应内容。
 typeAliasesPackage:它一般对应我们的实体类所在的包,这个时候会自动取对应包中不包括包名的简单类名作为包括包名的别名。多个package之间可以用逗号或者分号等来进行分隔。(value的值一定要是包的全名)

6.参考文献

https://blog.csdn.net/uwillneverwalkalone/article/details/80706814
https://www.jb51.net/article/128620.htm

 

 

https://www.cnblogs.com/jedjia/p/mybatis.html

 

7.更多讨论

Q1.spring整合mybatis总共有几种方式?

一共有4种方式,具体的见下面的连接:https://blog.csdn.net/xqhys/article/details/53994740

Q2.为什么要用spring整合mybatis,单独的mybatis不一样可以使用嘛?

引入spring是为了利用spring框架自身的优势,具体的spring的优势在哪里,这里不再赘述。

Q3.使用xml方式进行sql语句的封装的时候,文件推荐放在mapper文件夹下还是放在resources文件下?

推荐放在resources文件下,但你也可以放在mapper文件夹下,但此时你必须去application.xml文件中去配置你的xml文件的位置,虽然放在resources文件下也需要去配置,但此时你只需要这样配置 *.xml即可,它会自动去扫描后缀为xml的文件并进行加载,这种方法即省事省力又容易忘记配置文件导致程序出错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值