SSM之Spring、Mybatis整合

本文主要介绍一下如何整合Spring、Mybatis

整合的大致思路就是使用Spring去管理Mybatis对象的创建。

1)首先Mybatis的使用

  1. 需要Mybatis依赖
  2. 配置mybatisConfig.xml文件
  3. 跟数据库字段对应的VO
  4. 编写mapper.java文件
  5. 编写mapper.xml文件
  6. 通过SqlSessionFactory使用

2)再然后Spring的使用

  1. 导入依赖
  2. JavaBean
  3. 配置springConfig.xml文件

整合思路

在这里插入图片描述
这里Mybatis中需要Spring管理的对象就是SqlSessionFactory的一个实例,
同时,在springConfig.xml文件中配置数据源
在这里插入图片描述

整合步骤

  1. 导入mybatis依赖、导入spring依赖
  2. 创建VO类
  3. mapper.java文件
  4. mapper.xml文件
  5. 创建mybatisConfig.xml文件
  6. 创建springConfig.xml文件

对于Spring跟Mybatis的整合来说,还需要导入一个专门整合的依赖:
mybatis-spring

mybatis依赖

<dependency>    
  <groupId>mysql</groupId>    
  <artifactId>mysql-connector-java</artifactId>    
  <version>5.1.32</version>    
</dependency> 
<!--mybatis配置-->    
<dependency>    
     <groupId>org.mybatis</groupId>    
     <artifactId>mybatis</artifactId>    
     <version>3.4.1</version>    
</dependency>   

Spring核心依赖

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>4.1.7.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>4.1.7.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.1.7.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-expression</artifactId>
    <version>4.1.7.RELEASE</version>
</dependency>

Spring-Mybatis整合依赖

<!--mybatis和spring整合jar-->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.0</version>
</dependency>

创建VO类

这个类的成员变量需要跟数据库对应的表的字段一致

public class User {
    private int id;
    private String name;
    private Integer sex;
    private String address;

	//省略setter、getter和toString
}

编写mapper.java文件

用以调用的操作数据库的方法

public interface UserMapper {
    User getUserById(int id);
}

编写mapper.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命令空间,随便写,一般保证命名空间唯一 -->
<mapper namespace="orgSM.exampleSM.mapper.UserMapper">
    <!--查询标签:select-->
    <select id="getUserById" resultType="orgSM.exampleSM.bean.User">
        select * from user where id = #{id}
    </select>
</mapper>

配置mybatisConfig.xml文件

这里面的配置可以交给Spring完成、控制、管理

<?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>

    <!--数据源   在spring整合后,将数据源放在spring的配置文件中-->
    <!--<environments default="">-->
    <!--<environment id="">-->
    <!--<transactionManager type=""></transactionManager>-->
    <!--<dataSource type=""></dataSource>-->
    <!--</environment>-->
    <!--</environments>-->

    <!--mapper  在和spring整合后,可以放在spring配置文件中-->
    <!--<mappers>-->
    <!--<mapper resource=""/>-->
    <!--</mappers>-->
</configuration>

配置springConfig.xml文件(重头戏!!!)

通过Spring管理数据源(驱动、账号、密码等)
管理SqlSessionFactory对象
通过代理生成Mapper.java的一个对象(操作数据库)

<?xml version="1.0" encoding="UTF-8"?>
<!--根标签-->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <!--配置数据源-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.DriverManagerDataSource">
        <!--配置连接数据库的核心配置4个参数-->
        <property name="driverClass" value="com.mysql.jdbc.Driver"/>
        <property name="user" value="root"/>
        <property name="password" value="123456"/>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/library"/>
    </bean>

    <!--配置SQLSessionFactory-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!--配置数据源-->
        <property name="dataSource" ref="dataSource"/>
        
        <!--加载mybatis的配置,也可以在mybatisConfig.xml中进行配置-->
        <!--<property name="configLocation" value="config/mybatis.xml"/>-->
        
        <!--配置xml文件的映射,在mybatis的中,在<mapper>标签下添加的-->
        <property name="mapperLocations">
            <list>
                <value>mapper/userMapper.xml</value>
            </list>
        </property>
    </bean>

    <!--
    通过代理对象进行mapper的映射
    class即mybatis-spring包提供的MapperFactoryBean
    -->
    <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
        <!--mapperInterface指定mapper接口-->
        <property name="mapperInterface" value="orgSM.exampleSM.mapper.UserMapper"/>

        <!--指定SQLSessionFactory-->
        <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
    </bean>
</beans>

在这里插入图片描述

Demo

public class App {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext applicationContext =
                new ClassPathXmlApplicationContext("config/spring.xml");//读取配置文件
        UserMapper userMapper = (UserMapper) applicationContext.getBean("userMapper");
        User user = userMapper.getUserById(10);
        System.out.println(user);
    }
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值