Spring整合mybatis

1.添加依赖包

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <!--Spring的依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.3.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.3.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.3.3.RELEASE</version>
        </dependency>
        <!--c3p0的连接池-->
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
        </dependency>
        <!--mybatis的包-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.1</version>
        </dependency>
        <!--spring与mybatis整合需要的包-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.21</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.6</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.39</version>
        </dependency>
    </dependencies>

spring与mybatis整合中mybatis-spring是一个关键的依赖包

2.配置mybatis

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver"/>
        <property name="jdbcUrl" value="jdbc:mysql://192.168.133.166:3306/system_security_management?useSSL=false"/>
        <property name="user" value="layman"/>
        <property name="password" value="123456"/>
    </bean>

    <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mapperLocations" value="classpath*:mybatis/mapper/sqlmapper/*.xml"/>
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.layman.study.mybatis.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"/>
    </bean>

这里其实只需要配置一个sqlSessionFactoryBeanMapperScannerConfigurer

 注意:sqlSessionFactoryBeanName属性很重要  一定使用sqlSessionFactoryBeanName 而不是sqlSessionFactory,如是使用sqlSessionFactory  可能导致有的properties文件不能加载,发生一些未知错误。

sqlSessionFactoryBean 中的属性 mapperLocations 指定了需要扫描的mapper接口的实现的xml文件,mapper文件包括插件帮我们生成的也包括我们自己定义的mapper(其实就是我们自定义的Dao的实现)
<?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="com.layman.study.mybatis.dao.SysUserDao">
    <resultMap id="BaseResultMap" type="com.layman.study.mybatis.pojo.SysUser">
        <id column="id" property="id" jdbcType="BIGINT"/>
        <result column="user_name" property="userName" jdbcType="VARCHAR"/>
        <result column="password" property="password" jdbcType="VARCHAR"/>
        <result column="nick_name" property="nickName" jdbcType="VARCHAR"/>
        <result column="salt" property="salt" jdbcType="VARCHAR"/>
    </resultMap>
    <select id="selectSysUserByPrimaryKey" parameterType="int" resultMap="BaseResultMap">
        SELECT * FROM sys_user WHERE id = #{id}
    </select>
</mapper>

 

MapperScannerConfigurer 中的属性 basePackage 指定了我们的mapper接口
public interface SysUserDao {
    SysUser selectSysUserByPrimaryKey(@Param(value = "id") Integer id);
}

3.测试

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath*:spring/Application-*.xml")
public class SysUserTest {

    private static final Logger LOGGER = LoggerFactory.getLogger(SysUserTest.class);

    private static final ObjectMapper objectMapper = new ObjectMapper();

    @Resource
    private SysUserService sysUserService;

    @Test
    public void test1() throws Exception {
        SysUser sysUser = sysUserService.selectSysUserByPrimaryKey(1);
        LOGGER.info(objectMapper.writeValueAsString(sysUser));
    }
}

结果:

2017-02-16 16:07:50,321 [main] INFO  mybatis.SysUserTest - {"id":1,"userName":"Layman","password":"737b0be0e65ddbc20664b377a003c7bd","nickName":"聖殿罗刹","salt":"SWLwSE"}

 

posted @ 2017-02-16 16:24  Laymen  阅读(317)  评论(0编辑  收藏  举报