Spring整合Mybatis — 配置文件方式

本文详细介绍了如何在Spring框架中整合Mybatis,包括配置数据源、创建Mapper接口和XML文件、配置SqlSessionFactory等步骤,最后通过Junit进行测试验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


文章中数据库为 Mysql、JDK版本为1.8、Spring版本为 4.3.9

在Spring中整合Mybatis总体来说分为以下几个步骤

  1. 引入数据源
  2. 创建 Mapper 接口
  3. 创建 Mapper.xml
  4. 配置Mybatis的 SqlSessionFactory

这是最最简单也是最基础的配置,下面将演示这几步的配置方式。

我们在 src 目录下面创建一个 resources 的文件夹,专门拿来存放各种配置文件,然后在 IDEA中将它标记成 “resources” ,那么 resources 文件夹下面的配置文件在编译后,都会存放在WEB-INF/classes/文件夹下面,我们以后要引用配置文件的时候就可以直接写:classpath:配置文件名,这样就可以引用指定的配置文件了。
在这里插入图片描述

1、配置数据源

我们首先创建一个 mysql 的配置文件 jdbc.properties,里面存放以下内容:

// mysql 驱动
jdbc_driverClassName=com.mysql.jdbc.Driver
// 数据库地址和数据库名和编码
jdbc_url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8&useSSL=false
// 用户名和密码
jdbc_username=root
jdbc_password=root

在 Spring 的配置文件中引入 mysql 的配置文件;

<!-- 1、引入mysql配置文件 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:jdbc.properties</value>
            <!--要是有多个配置文件,只需在这里继续添加即可 -->
        </list>
    </property>
</bean>

接下来就是配置数据源了,配置数据源会使用到类:org.springframework.jdbc.datasource.DriverManagerDataSource

<!-- 2、配置数据源 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	<property name="driverClassName" value="${jdbc_driverClassName}" />
	<property name="url" value="${jdbc_url}" />
	<property name="username" value="${jdbc_username}" />
	<property name="password" value="${jdbc_password}" />
</bean>

要引用 mysql 配置文件中的内容,使用语法:${键名}

数据源到此,就配置结束了,下面配置 mybatis的相关配置。

2、配置 Mybatis

配置Mybatis大致分为以下几个步骤:

  1. 配置 mybatis 的配置文件
  2. 创建 ***Mapper 接口
  3. 创建 ***Mapper.xml
  4. 配置Mybatis的 SqlSessionFactory

2.1、配置 mybatis 的配置文件

首先,我们要先创建 mybatis 的配置文件:mybatis-config.xml
这个配置文件我们放在 resources/mybatis/ 目录下,配置文件里的内容如下:

<?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>
    <!-- 配置包的 entity 类的全限定名,以后在 Mapper.xml 中再使用 entity 下的类的时候就可以直接写名字,而不需要写全限定名了 -->
    <typeAliases>
        <package name="com.hyuga.neji.entity"/>
    </typeAliases>
</configuration>

2.2、配置 Mapper 接口

Mapper 接口与 Mapper.xml相互映射,Mapper 接口为Java代码,放在 src 目录下,我们创建的接口为:com.hyuga.neji.dao.UserMapper
我为这个接口声明了一个查询所有 User 的方法:

public interface UserMapper {
    List<User> selectAll();
}

2.3、配置 mapper.xml

我们的 mapper.xml 文件配置在 resources/mybatis/mappers/ 目录下,我们先创建文件:UserMapper.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">
// 这里的 namespace 里面的内容写成要映射的 mapper 接口的路径。
<mapper namespace="com.hyuga.neji.mappers.UserMapper">
   <resultMap id="userResult" type="User">
        <result column="id" property="id"/>
        <result column="user_name" property="userName"/>
        <result column="e_name" property="EName"/>
        <result column="gender" property="gender"/>
        <result column="age" property="age"/>
    </resultMap>
	
    <select id="selectAll" resultMap="userResult">
        SELECT * FROM user;
    </select>
</mapper>

以下几点需要注意:

  1. xml 文件的 namespace 要写成 mapper 接口的路径。
  2. Mapper 接口方法名和 Mapper.xml 中定义的每个 sql 的 id 同名。例如上面的 “selectAll”
  3. Mapper 接口方法的输入参数类型和 Mapper.xml 中定义的 sql 的parameterType 类型相同。
  4. Mapper 接口的返回类型和 Mapper.xml 中定义的 sql 的 resultType 类型相同

2.4、配置 Mybatis 的 SqlSessionFactory

在配置Mybatis的 SqlSessionFactory时,使用类:org.mybatis.spring.SqlSessionFactoryBean

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 引用上面 mysql 配置中的数据源 -->
        <property name="dataSource" ref="dataSource" />
        <!-- mapperLocations配置**Mapper.xml文件位置 -->
        <property name="mapperLocations" value="classpath:mybatis/mappers/*.xml"/>
        <!-- configLocation配置mybatis-config文件位置 -->
        <property name="configLocation" value="classpath:mybatis/mybatis-config.xml" />
    </bean>

2.5、配置 Mapper 的扫描

<!-- 自动扫描了所有的 *Mapper.xml对应的mapper接口文件,这样就不用一个一个手动配置Mapper的映射了,只要Mapper接口类和Mapper映射文件对应起来就可以了。 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.hyuga.neji.dao" />
    </bean>

到此,最简单的Spring整合Mybatis就完成了。

3、测试验证

下面使用Junit进行测试:

public class UserTest {

    @Test
    public void getAllUser(){
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserMapper mapper = (UserMapper) context.getBean("userMapper");

        List<User> list = mapper.selectAll();
        for (User user : list) {
            System.out.println(user);
        }
    }
}

打印结果:

User{id=1, userName='日向宁次', EName='HyugaNeji', gender=1, age=18}
User{id=2, userName='漩涡鸣人', EName='Uzumaki Naruto', gender=1, age=19}
User{id=3, userName='宇智波佐助', EName='Uchiha Sasuke', gender=1, age=19}
User{id=4, userName='日向雏田', EName='Hyuga Hinata', gender=0, age=16}

这只是最简单的按照配置文件的方式整合mybatis,另外还有SpringMVC、事务之类的配置可以在此基础上按需加载。
源码下载地址: SSM框架
这是一个简单的SSM框架,还包括sql数据、事务、简单的网页做数据显示。
下载即可使用


技 术 无 他, 唯 有 熟 尔。
知 其 然, 也 知 其 所 以 然。
踏 实 一 些, 不 要 着 急, 你 想 要 的 岁 月 都 会 给 你。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值