小小千想和您聊一聊

当前位置: 首页> 技术分享> MyBatis之Spring整合

MyBatis之Spring整合

  前言

  Spring、SpringMVC和MyBatis是目前企业开发的三大框架。本章我们将学习将Spring和MyBatis整合到一起,成为我们项目开发的技术骨架。

  引入依赖

  首先我们需要在Maven项目中添加依赖,Spring框架和MyBatis框架需要的依赖有:

  添加配置文件

  首先我们用properties文件配置JDBC的参数:

  示例代码:jdbc.properties

1.driver=com.mysql.cj.jdbc.Driver
2.url=jdbc:mysql://localhost/java1903?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&useSSL=false
3.user=root
4.password=123456

接下来在Spring配置文件中整合MyBatis
1.<!--1 引入属性文件,在配置中占位使用 -->
2.<context:property-placeholder location="classpath:jdbc.properties" />
3.<!--2 配置C3P0数据源 -->
4.<bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
5.<!--驱动类名 -->
6.<property name="driverClass" value="${driver}" />
7.<!-- url -->
8.<property name="jdbcUrl" value="${url}" />
9.<!-- 用户名 -->
10.<property name="user" value="${user}" />
11.<!-- 密码 -->
12.<property name="password" value="${password}" />
13.<!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数 -->
14.<property name="acquireIncrement" value="5"></property>
15.<!-- 初始连接池大小 -->
16.<property name="initialPoolSize" value="10"></property>
17.<!-- 连接池中连接最小个数 -->
18.<property name="minPoolSize" value="5"></property>
19.<!-- 连接池中连接最大个数 -->
20.<property name="maxPoolSize" value="20"></property>
21.</bean>
22.<!--3 配置MyBatis会话工厂bean -->
23.<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
24.<!-- 数据源 -->
25.<property name="dataSource" ref="datasource"/>
26.<!-- 别名 -->
27.<property name="typeAliasesPackage" value="com.qianfeng.mybatis.entity"/>
28.<!-- sql映射文件路径 -->
29.<property name="mapperLocations" value="classpath:mappers/*Mapper.xml"/>
30.</bean>
31.<!--4 自动扫描对象关系映射 -->
32.<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
33.<!--指定会话工厂,如果当前上下文中只定义了一个则该属性可省去 -->
34.<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
35.<!-- 指定要自动扫描接口的基础包,实现接口 -->
36.<property name="basePackage" value="com.qianfeng.mybatis.dao"/>
37.</bean>
38.<!--5 容器自动扫描IOC组件 -->
39.<context:component-scan base-package="com.qianfeng.mybatis"/>

  编写Mapper接口

  以一个基本的查询功能为例

  代码示例:

1./**
2. * 用户DAO接口
3. */
4.public interface UserDAO {
5.      /**
6.     * 查询所有用户
7.     */
8.    List<User> selectAll();
9.}

  编写Mapper 映射文件

  编写Mapper接口的映射,实现查询功能

  代码示例:

1.<?xml version="1.0" encoding="UTF-8"?>
2.<!DOCTYPE mapper
3.        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4.        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5.<!--mapper是映射,namespace是设置对应的DAO接口-->
6.<mapper namespace="com.qianfeng.ssm.dao.UserDAO">
7.    <!--配置数据库返回结果映射-->
8.    <resultMap id="userMap" type="User">
9.        <!--id用于配置主键,property是实体类的属性名,column是表中的字段名-->
10.        <id property="id" column="u_id"></id>
11.        <!--result配置主键外其他列-->
12.        <result property="name" column="u_name"></result>
13.        <result property="password" column="u_password"></result>
14.        <result property="realname" column="u_realname"></result>
15.        <result property="age" column="u_age"></result>
16.        <result property="gender" column="u_gender"></result>
17.        <result property="img" column="u_img"></result>
18.    </resultMap>
19.    <!--配置查询语句-->
20.    <select id="selectAll" resultMap="userMap">
21.        select * from tb_user
22.    </select>
23.  
24.</mapper>

  Spring整合JUnit进行单元测试

  使用Spring整合JUnit,测试Mapper接口是否能用SpringIOC实现注入:

  代码示例

1.@ContextConfiguration(locations = "classpath:applicationContext.xml")
2.@RunWith(SpringJUnit4ClassRunner.class)
3.public class TestDAO {
4.
5.    @Resource
6.    UserDAO userDAO;
7.
8.    @Test
9.    public void testUserDAO(){
10.        List<User> users = userDAO.selectAll();
11.        users.forEach((user)->System.out.println(user));
12.    }
13.}
 

  总结

  使用Spring整合MyBatis后,能够利用Spring强大的IOC机制,将Mapper接口的代理对象注入进来,从而避免了手动创建SqlSessionFactory和SqlSession对象的麻烦,同时Spring对SqlSession的访问方式进行了优化,解决了SQLSession的线程安全问题。

上一篇:Java弱引用(WeakReference)的理解与使用

下一篇:Zookeeper集群的搭建过程

QQ技术交流群

千锋Java开发官方①群
811099962

加入群聊

用户登录

手机号:

密码:

图形验证码:

点击切换

用户注册

手机号:

登录密码:

图形验证码:

点击切换

短信验证码:

获取验证码

忘记密码

1安全验证

2重置密码

手机号:

图形验证码:

短信验证码:

获取验证码

忘记密码

1安全验证

2重置密码

新密码:

确认新密码:

获取课程

添加小千老师微信,获取课程信息

如何获取课程?

一、需拥有此本教材

如没有,可点击下方入口购买当当购买入口京东购买入口

二、添加小千老师,发送拥有凭证,解锁课程资源

1.购买该教材的订单信息
2.拥有的实体书信息等

更换手机号

新手机号:

图形验证码:

短信验证码:

获取验证码