Mybatis整合Spring

一、整合思路。

1、SqlSessionFactory对象交给Spring容器管理。

2、传统dao的开发方式中应该从Spring容器中获取sqlSession对象。

3、Mapper代理形式中,应该从Spring容器中直接获得mapper的代理对象。

4、数据库的连接以及数据库连接池事务管理都交给spring容器来完成。

 

二、需要整合的jar包。

1、spring的jar包。

2、mybatis的jar包。

3、spring+mybatis的整合包。

4、mysql的数据库驱动jar包。

5、数据库连接池的jar包。

 

 三、整合步骤。

1、创建工程,导入jar包。

2、加入配置文件。

  2.1 sqlMapConfig配置文件。

    2.1.1 数据库连接及连接池。(放到applicationContext.xml配置文件中)

    2.1.2 事务管理。

    2.1.3 sqlSessionFactory对象,配置到spring容器中。

    2.1.4 mapper代理对象或者是dao实现类配置到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>
    <!-- 1.设置别名 -->
    <typeAliases>
        <!-- 2. 指定扫描包,会把包内所有的类都设置别名,别名的名称就是类名,大小写不敏感 -->
        <package name="com.sfwu15.pojo"/>
    </typeAliases>
    
    <!-- 加载Mapper -->
    <mappers>
        <!-- 加载User.xml配置文件 -->
        <mapper resource="SqlMap/User.xml"/>
    </mappers>
</configuration>

  2.2 applicationContext.xml的配置文件。

  2.2.1 因为SqlSessionFactoryBean属于mybatis-spring这个jar包,对于spring来说,mybatis是另外一个架构,需要整合jar包,所以在项目中加入mybatis-spring-1.2.2.jar的源码。

  2.2.2 加载db.properties配置文件。

  2.2.3 配置数据库连接池。

  2.2.4 配置SqlSessionFactory对象。 

  2.2.5 配置Dao。

  2.2.6 配置Mapper代理。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
                        http://www.springframework.org/schema/beans/spring-beans-4.2.xsd 
                        http://www.springframework.org/schema/aop 
                        http://www.springframework.org/schema/aop/spring-aop-4.2.xsd 
                        http://www.springframework.org/schema/context 
                        http://www.springframework.org/schema/context/spring-context-4.2.xsd 
                        http://www.springframework.org/schema/tx 
                        http://www.springframework.org/schema/tx/spring-tx-4.2.xsd ">

    <!-- 加载数据库配置文件 -->
    <context:property-placeholder location="classpath:db.properties"/>
    
    <!-- 数据库连接池 -->
    <bean name="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="clone">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="maxActive" value="10"/>
        <property name="maxIdle" value="5"/>
    </bean>
    
    <!-- 配置SqlSessionFactory对象 -->
    <bean name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 配置sqlMapConfig配置文件 -->
        <property name="configLocation" value="classpath:SqlMapConfig.xml"/>
        <!-- 配置数据源 -->
        <property name="dataSource" ref="dataSource"/>
    </bean>
    
    <!-- 配置Dao -->
    <bean name="userDao" class="com.sfwu15.dao.impl.UserDaoImpl">
        <!-- 配置sqlSessionFactory -->
        <property name="sqlSessionFactory" ref="sqlSessionFactory"/>
    </bean>
    
    <!-- Mapper代理的方式开发方式一,配置Mapper代理对象 -->
    <!-- <bean name="userMappe" class="org.mybatis.spring.mapper.MapperFactoryBean">
        配置Mapper接口
        <property name="mapperInterface" value="com.sfwu15.mapper.UserMapper"/>
        配置sqlSessionFactory
        <property name="sqlSessionFactory" ref="sqlSessionFactory" />
    </bean> -->
    
    <!-- Mapper代理的方式开发方式二,扫描包方式配置代理 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 配置Mapper接口 -->
        <property name="basePackage" value="com.sfwu15.mappercom.sfwu15.mapper"/>
    </bean>
</beans>

   2.3 db.properties配置如下。

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root

  2.4 log4j.properties配置如下:

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

搭建完成后的文件如下图所示:

posted @ 2022-10-30 17:01  炒股沦为首负  阅读(17)  评论(0编辑  收藏  举报