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文件

整合思路

SSM之Spring、Mybatis整合_第1张图片
这里Mybatis中需要Spring管理的对象就是SqlSessionFactory的一个实例,
同时,在springConfig.xml文件中配置数据源
SSM之Spring、Mybatis整合_第2张图片

整合步骤

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

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

mybatis依赖

<dependency>    
  <groupId>mysqlgroupId>    
  <artifactId>mysql-connector-javaartifactId>    
  <version>5.1.32version>    
dependency> 
    
<dependency>    
     <groupId>org.mybatisgroupId>    
     <artifactId>mybatisartifactId>    
     <version>3.4.1version>    
dependency>   

Spring核心依赖

<dependency>
    <groupId>org.springframeworkgroupId>
    <artifactId>spring-coreartifactId>
    <version>4.1.7.RELEASEversion>
dependency>
<dependency>
    <groupId>org.springframeworkgroupId>
    <artifactId>spring-beansartifactId>
    <version>4.1.7.RELEASEversion>
dependency>
<dependency>
    <groupId>org.springframeworkgroupId>
    <artifactId>spring-contextartifactId>
    <version>4.1.7.RELEASEversion>
dependency>
<dependency>
    <groupId>org.springframeworkgroupId>
    <artifactId>spring-expressionartifactId>
    <version>4.1.7.RELEASEversion>
dependency>

Spring-Mybatis整合依赖


<dependency>
    <groupId>org.mybatisgroupId>
    <artifactId>mybatis-springartifactId>
    <version>1.3.0version>
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文件

用于查询数据库




<mapper namespace="orgSM.exampleSM.mapper.UserMapper">
    
    <select id="getUserById" resultType="orgSM.exampleSM.bean.User">
        select * from user where id = #{id}
    select>
mapper>

配置mybatisConfig.xml文件

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




<configuration>

    
    
    
    
    
    
    

    
    
    
    
configuration>

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

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



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

    
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        
        <property name="dataSource" ref="dataSource"/>
        
        
        
        
        
        <property name="mapperLocations">
            <list>
                <value>mapper/userMapper.xmlvalue>
            list>
        property>
    bean>

    
    <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
        
        <property name="mapperInterface" value="orgSM.exampleSM.mapper.UserMapper"/>

        
        <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
    bean>
beans>

SSM之Spring、Mybatis整合_第3张图片

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);
    }
}

SSM之Spring、Mybatis整合_第4张图片

你可能感兴趣的:(SSM框架)