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

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


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


相关文章
|
2月前
|
Java 数据库连接 数据库
Spring Boot与MyBatis的集成应用
Spring Boot与MyBatis的集成应用
|
22天前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
3天前
|
前端开发 JavaScript Java
技术分享:使用Spring Boot3.3与MyBatis-Plus联合实现多层次树结构的异步加载策略
在现代Web开发中,处理多层次树形结构数据是一项常见且重要的任务。这些结构广泛应用于分类管理、组织结构、权限管理等场景。为了提升用户体验和系统性能,采用异步加载策略来动态加载树形结构的各个层级变得尤为重要。本文将详细介绍如何使用Spring Boot3.3与MyBatis-Plus联合实现这一功能。
17 2
|
13天前
|
Java 数据库连接 测试技术
SpringBoot 3.3.2 + ShardingSphere 5.5 + Mybatis-plus:轻松搞定数据加解密,支持字段级!
【8月更文挑战第30天】在数据驱动的时代,数据的安全性显得尤为重要。特别是在涉及用户隐私或敏感信息的应用中,如何确保数据在存储和传输过程中的安全性成为了开发者必须面对的问题。今天,我们将围绕SpringBoot 3.3.2、ShardingSphere 5.5以及Mybatis-plus的组合,探讨如何轻松实现数据的字段级加解密,为数据安全保驾护航。
48 1
|
21天前
|
Web App开发 前端开发 关系型数据库
基于SpringBoot+Vue+Redis+Mybatis的商城购物系统 【系统实现+系统源码+答辩PPT】
这篇文章介绍了一个基于SpringBoot+Vue+Redis+Mybatis技术栈开发的商城购物系统,包括系统功能、页面展示、前后端项目结构和核心代码,以及如何获取系统源码和答辩PPT的方法。
|
22天前
|
SQL Java 关系型数据库
SpringBoot 系列之 MyBatis输出SQL日志
这篇文章介绍了如何在SpringBoot项目中通过MyBatis配置输出SQL日志,具体方法是在`application.yml`或`application.properties`中设置MyBatis的日志实现为`org.apache.ibatis.logging.stdout.StdOutImpl`来直接在控制台打印SQL日志。
SpringBoot 系列之 MyBatis输出SQL日志
|
29天前
|
前端开发 Java 数据库连接
一天十道Java面试题----第五天(spring的事务传播机制------>mybatis的优缺点)
这篇文章总结了Java面试中的十个问题,包括Spring事务传播机制、Spring事务失效条件、Bean自动装配方式、Spring、Spring MVC和Spring Boot的区别、Spring MVC的工作流程和主要组件、Spring Boot的自动配置原理和Starter概念、嵌入式服务器的使用原因,以及MyBatis的优缺点。
|
28天前
|
Java 数据库连接 mybatis
基于SpringBoot+MyBatis的餐饮点餐系统
本文介绍了一个基于SpringBoot和MyBatis开发的餐饮点餐系统,包括系统的主控制器`IndexController`的代码实现,该控制器负责处理首页、点餐、登录、注册、订单管理等功能,适用于毕业设计项目。
41 0
基于SpringBoot+MyBatis的餐饮点餐系统
|
28天前
|
XML SQL JavaScript
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
这篇文章介绍了如何在Vue页面中结合SpringBoot、MyBatis、ElementUI和ECharts,实现从数据库获取数据并展示为图表的过程,包括前端和后端的代码实现以及遇到的问题和解决方法。
在vue页面引入echarts,图表的数据来自数据库 springboot+mybatis+vue+elementui+echarts实现图表的制作
|
29天前
|
SQL Java 数据库连接
springboot+mybatis+shiro项目中使用shiro实现登录用户的权限验证。权限表、角色表、用户表。从不同的表中收集用户的权限、
这篇文章介绍了在Spring Boot + MyBatis + Shiro项目中,如何使用Shiro框架实现登录用户的权限验证,包括用户、角色和权限表的设计,以及通过多个表查询来收集和验证用户权限的方法和代码实现。
springboot+mybatis+shiro项目中使用shiro实现登录用户的权限验证。权限表、角色表、用户表。从不同的表中收集用户的权限、