在 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&characterEncoding=utf-8&useSSL=false&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结尾的文件都作映射。

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