Mybatis-Spring之使用 SqlSession

本教程详细介绍了如何在MyBatis-Spring中使用SqlSessionTemplate来创建SqlSession,避免直接操作SqlSessionFactory。首先,列举了所需依赖,接着创建User类、UserMapper接口及XML文件。然后配置mybatis-config.xml和spring-dao.xml,特别是spring-dao.xml中配置SqlSessionFactoryBean和SqlSessionTemplate,用于数据库连接和事务管理。最后,通过SqlSessionTemplate实现数据库的查询操作。

在 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="zs123456"/>
</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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值