2025年Mybatis-Spring之使用 SqlSession

Mybatis-Spring之使用 SqlSession在 MyBatis 中 你可以使用 SqlSessionFa 来创建 SqlSession 一旦你获得一个 session 之后 你可以使用它来执行映射了的语句 提交或回滚连接 最后 当不再需要它的时候 你可以关闭 session 使用 MyBatis Spring 之后

大家好,我是讯享网,很高兴认识大家。

在 MyBatis 中,你可以使用 SqlSessionFactory 来创建 SqlSession。 一旦你获得一个 session 之后,你可以使用它来执行映射了的语句,提交或回滚连接,最后,当不再需要它的时候,你可以关闭 session。 使用 MyBatis-Spring 之后,你不再需要直接使用 SqlSessionFactory 了,因为你的 bean 可以被注入一个线程安全的 SqlSession,它能基于 Spring 的事务配置来自动提交、回滚、关闭 session。

这是官方文档上的描述,翻译过来的人话就是:在MyBatis-Spring中,使用下面即将登场的SqlSessionTemplate来创建SqlSession

目录

目录

1、使用SqlSessionTemplate

        1.1 导包

        1.2 创建User类

        1.3 创建UserMapper接口

        1.4 创建UserMapper.xml文件

        1.5 配置mybatis-config.xml

        1.6 配置spring-dao.xml

2、SqlSessionTemplate



1、使用SqlSessionTemplate

1.1 导包

本教程所需要的所有依赖包如下


讯享网

 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.8</version> </dependency> <!--junit--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> </dependency> <!--lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.5</version> </dependency> <!--mysql--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.25</version> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.3</version> </dependency> <!--spring-jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.3.8</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.9.5</version> </dependency> <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.6</version> </dependency> </dependencies>

讯享网

1.2 创建User类

定义了三个属性,id、name、pwd,且均为私有属性,并利用Lombok生成set、get方法和toString方法。

讯享网package com.jason.pojo; import lombok.Data; import lombok.ToString; @Data @ToString public class User { private long id; private String name; private String pwd; }

1.3 创建UserMapper接口

定义一个查询所有用户的方法queryUsers()

package com.jason.mapper; import com.jason.pojo.User; import java.util.List; public interface UserMapper { public List<User> queryUsers(); } 

1.4 创建UserMapper.xml文件

编写上一步骤中的查询语句,select语句的id为UserMapper接口中的方法名,resultType为mybatis-config.xml中的配置

讯享网<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.jason.mapper.UserMapper"> <select id="queryUsers" resultType="User"> select * from user </select> </mapper>

1.5 配置mybatis-config.xml

mybatis-config.xml文件在本项目中主要负责放置一些别名的配置和映射的配置,具体的数据库连接信息放在下一小节的spring-dao.xml配置中。mybatis-config.xml的具体配置如下:

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!--别名--> <typeAliases> <typeAlias type="com.jason.pojo.User" alias="User"/> </typeAliases> <!--映射--> <mappers> <package name="com.jason.mapper"/> <!-- <mapper class="com.jason.mapper.UserMapper"/>--> </mappers> </configuration>

如果映射的接口文件不多的情况下,也可以使用下面的mapper class的形式进行配置,但是如果接口文件多的话,使用上面的包名的形式进行统一映射较为方便,

讯享网<!--映射--> <mappers> <mapper class="com.jason.mapper.UserMapper"/> </mappers>

1.6 配置spring-dao.xml

spring-dao.xml是本文要重点关注的文件,涉及MyBatis-Spring的核心——SqlSessionTemplate。

  • 首先配置DataSource数据源,这是Spring(Mybatis-Spring)链接数据库的关键
<!--使用Spring的数据源替换Mybatis的配置--> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=utf-8&amp;useSSL=false&amp;serverTimezone=GMT"/> <property name="username" value="root"/> <property name="password" value="zs"/> </bean>
  • 然后利用SqlSessionFactoryBean创建SqlSessionFactory
讯享网<!--sqlSessionFactory--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!--绑定Mybatis配置文件,设置别名和映射--> <property name="configLocation" value="classpath:mybatis-config.xml"/> </bean>

由于我们在上一小节中提到需要使用Mybatis的别名和映射,所以这里需要绑定mybatis的配置文件——mybatis-config.xml。其中映射也可以使用mapperLocations属性配置,但是要注意需要将mybatis-config.xml中响应的映射信息去除,否则会重复。

<!--sqlSessionFactory--> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <!--绑定Mybatis配置文件,设置别名和映射--> <property name="configLocation" value="classpath:mybatis-config.xml"/> <property name="mapperLocations" value="classpath:com/jason/mapper/*.xml"/> </bean>

上面配置中增加的mapperLocations是将com/jason/mapper包下所有以.xml结尾的文件都作映射。

2、SqlSessionTemplate

小讯
上一篇 2025-01-20 09:16
下一篇 2025-01-06 17:22

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/29587.html