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层)

7.png


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

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

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


(2)隔离级别

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

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

  • serializable:序列化读


(3)幻影读

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


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

(1)概念

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

(2)常用取值及区别

  1. 1.REQUIRED

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

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


  1. 2.SUPPORTS

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

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


相关文章
|
17天前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
136 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
1月前
|
Java 数据库连接 数据库
spring复习05,spring整合mybatis,声明式事务
这篇文章详细介绍了如何在Spring框架中整合MyBatis以及如何配置声明式事务。主要内容包括:在Maven项目中添加依赖、创建实体类和Mapper接口、配置MyBatis核心配置文件和映射文件、配置数据源、创建sqlSessionFactory和sqlSessionTemplate、实现Mapper接口、配置声明式事务以及测试使用。此外,还解释了声明式事务的传播行为、隔离级别、只读提示和事务超时期间等概念。
spring复习05,spring整合mybatis,声明式事务
|
9天前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
14 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
1月前
|
Java 数据库连接 数据库
SpringBoot 整合jdbc和mybatis
本文详细介绍了如何在SpringBoot项目中整合JDBC与MyBatis,并提供了具体的配置步骤和示例代码。首先,通过创建用户实体类和数据库表来准备基础环境;接着,配置Maven依赖、数据库连接及属性;最后,分别展示了JDBC与MyBatis的集成方法及其基本操作,包括增删查改等功能的实现。适合初学者快速入门。
SpringBoot 整合jdbc和mybatis
|
11天前
|
Java 数据库连接 API
springBoot:后端解决跨域&Mybatis-Plus&SwaggerUI&代码生成器 (四)
本文介绍了后端解决跨域问题的方法及Mybatis-Plus的配置与使用。首先通过创建`CorsConfig`类并设置相关参数来实现跨域请求处理。接着,详细描述了如何引入Mybatis-Plus插件,包括配置`MybatisPlusConfig`类、定义Mapper接口以及Service层。此外,还展示了如何配置分页查询功能,并引入SwaggerUI进行API文档生成。最后,提供了代码生成器的配置示例,帮助快速生成项目所需的基础代码。
|
1月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
18天前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
24 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
18天前
|
Java 数据库连接 mybatis
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
该文档详细介绍了如何在Springboot Web项目中整合Mybatis,包括添加依赖、使用`@MapperScan`注解配置包扫描路径等步骤。若未使用`@MapperScan`,系统会自动扫描加了`@Mapper`注解的接口;若使用了`@MapperScan`,则按指定路径扫描。文档还深入分析了相关源码,解释了不同情况下的扫描逻辑与优先级,帮助理解Mybatis在Springboot项目中的自动配置机制。
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
|
1月前
|
XML Java 关系型数据库
springboot 集成 mybatis-plus 代码生成器
本文介绍了如何在Spring Boot项目中集成MyBatis-Plus代码生成器,包括导入相关依赖坐标、配置快速代码生成器以及自定义代码生成器模板的步骤和代码示例,旨在提高开发效率,快速生成Entity、Mapper、Mapper XML、Service、Controller等代码。
springboot 集成 mybatis-plus 代码生成器
|
1月前
|
SQL XML Java
springboot整合mybatis-plus及mybatis-plus分页插件的使用
这篇文章介绍了如何在Spring Boot项目中整合MyBatis-Plus及其分页插件,包括依赖引入、配置文件编写、SQL表创建、Mapper层、Service层、Controller层的创建,以及分页插件的使用和数据展示HTML页面的编写。
springboot整合mybatis-plus及mybatis-plus分页插件的使用