Spring+Mybatis整合核心知识

简介: Spring+Mybatis整合核心知识点

Spring+Mybatis整合核心知识点

1、Spring如何与Mybatis整合?

(1)配置数据源


(2配置SqlSessionFactory


(3)配置Dao


(4)配置Service


代码案例:


配置DataSources(数据源,连接池)

<!--所需依赖:1、driverClassName 2、url 3、username 4、password-->
<bean class="DruidDataSource" id="dataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url" value="略"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>

配置SqlSessionFactory

<!--1、依赖数据源 2、依赖于mapper文件(是路径用/)-->
<bean class="SqlSessionFactoryBeanName" id="sqlSessionFactory">
<property name="dataSource" rel="dataSource"></property>
<property name="mapperLocations" value="com/tjcu/mapper/*Mapper.xml"></property>
</bean>

配置管理dao层(mappeScannerConfigurer:映射扫描仪配置)

<!--1、dao的包 2、依赖于sqlSessionFactory mapperScannerConfigurer配置的时候默认实体类别名:首字母小写 -->
<bean class="mapperScannerConfigurer">
<property name="sqlSessionFactory" rel="sqlSessionFactory"></property>
<property name="basePackage" value="com.tjcu.dao">
</bean>

配置管理Service层

<!--依赖 1、dao层-->
<bean class="com.tjcu.service.UserServiceImpl" id=userService>
<propertry name="userDao" rel="userDao"></property>
</bean>

2、如何在Spring中进行事务控制?

(1)配置事务管理器(DataSourceTransactionManager)


(2)配置事务通知+事务属性+事务隔离级别


(3)配置切入点


(4)组装切面


代码案例:


配置事务管理器

<!--依赖于:1、事务源-->
<bean class="dataSourceTransactionManager" id="transactionManager">
<property name="dataSource" rel="dataSource"></property>
</bean>

配置事务通知+事务属性

<tx:advice id="txAdvice" transaction-manager="transactionManager">
   <tx:attributes>
         <tx:method name="insert*" propagration="REQUIRED" read-only="true"></tx:method>
   <tx:method name="update" propagration="REQUIRTED" read-only="true"></tx:method>
   <tx:method name="select*" propagration="SUPPORTS"></tx:method>
   </tx:attributes>
</tx:advice>>

配置切入点

<aop:configur>
<aop:pointcut id="pointcut" value="execution(* com.tjcu.*ServiceImpl.*(..))"><aop:pointcut>
</aop:configur>

组装切面

<aop:configur>
<aop:advisor advice-rel="txAdvice" pointcut-rel="pointcut"></aop:advisor>
</aop:configur>

spring整合Mybatis标准开发步骤(DAO层+Service层)

image.png

3、常见的数据库隔离级别有哪些 以及 分别解决什么问题?

(1)数据库事务隔离级别:

解决事务并发时存在 如:藏独,不可重复读,幻读的情况


(2)隔离级别

read_UnCommitted:已未提交事务:出现脏读,一个客户端添加某个数据,还没提交,另外的客户端就可以读到未提交的事务,会脏读


read_committed:读已提交,Oracle的默认事务隔离级别,解决脏读问题,一个客户端添加某个数据,还没提交,另外的客户端不能读到未提交的事务


repeatable:可重复读,解决事务的脏读和不可重复读问题,mysql默认的事务隔离级别


serializable:序列化读


(3)幻影读

幻影读:一个事务添加数据,另一事务对表中的数据进行多次查询,但查询的结果不一致。


4、Spring中的事务传播性解决什么问题 及 常见取值的区别是什么?

(1)概念

   事务的传播性,解决因事务嵌套 而导致事务没法控制的问题。


(2)常用取值及区别

REQUIRED

   含义:如果外部没有事务,则开启新的事务;如果外部存在事务,则融合到外部的事务中。


   开发中的使用:添加、修改、删除 时使用。


SUPPORTS

含义:如果外部没有事务,则不开启事务;如果外部存在事务,则融合到外部的事务中。


   开发中的使用:查询 时使用。


相关文章
|
3天前
|
SQL Java 数据库连接
Spring Boot整合MyBatis
Spring Boot整合MyBatis
|
1天前
|
Java 数据库连接 数据库
大事件后端项目05-----springboot整合mybatis
大事件后端项目05-----springboot整合mybatis
大事件后端项目05-----springboot整合mybatis
|
3天前
|
Java 数据库连接 Spring
Spring 整合 MyBatis 底层源码解析
Spring 整合 MyBatis 底层源码解析
|
4天前
|
Java 数据库连接 数据库
Spring Boot 集成 MyBatis-Plus 总结
Spring Boot 集成 MyBatis-Plus 总结
|
6天前
|
Java 关系型数据库 MySQL
Mybatis入门之在基于Springboot的框架下拿到MySQL中数据
Mybatis入门之在基于Springboot的框架下拿到MySQL中数据
15 4
|
6天前
|
Java 数据库连接 数据库
Springboot整合mybatis注解版(202005)
Springboot整合mybatis注解版(202005)
14 3
|
6天前
|
SQL Java 数据库连接
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
16 2
|
6天前
|
安全 前端开发 Java
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
挑战5分钟内基于Springboot+SpringMVC+Mybatis-plus快速构建web后端三层架构
12 1
|
6天前
|
Java 程序员
浅浅纪念花一个月完成Springboot+Mybatis+Springmvc+Vue2+elementUI的前后端交互入门项目
浅浅纪念花一个月完成Springboot+Mybatis+Springmvc+Vue2+elementUI的前后端交互入门项目
19 1
|
10天前
|
Java 数据库连接 mybatis
在Spring Boot应用中集成MyBatis与MyBatis-Plus
在Spring Boot应用中集成MyBatis与MyBatis-Plus
46 5