码迷,mamicode.com
首页 > 其他好文 > 详细

Mybatis学习(六)

时间:2018-09-15 00:39:19      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:inter   scope   typealias   方式   分享   org   drive   全局   数据库驱动   

1、今天重点:Mybatis整合spring

    整合思路:
        a、SqlSessionFactory对象应该放到spring容器中作为单例存在。
        b、传统dao的开发方式中,应该从spring容器中获得sqlsession对象。
        c、Mapper代理形式中,应该从spring容器中直接获得mapper的代理对象。
        d、数据库的连接以及数据库连接池事务管理都交给spring容器来完成。

    整合需要的jar包:
        a、spring的jar包。
        b、Mybatis的jar包。
        c、Spring+mybatis的整合包。
        d、Mysql的数据库驱动jar包。
        e、数据库连接池的jar包。

    整合的步骤:
        第一步:创建一个java工程。
        第二步:导入jar包。(上面提到的jar包)。
        第三步:mybatis的配置文件sqlmapConfig.xml。
        第四步:编写Spring的配置文件
                a、数据库连接及连接池
                b、事务管理(暂时可以不配置)
                c、sqlsessionFactory对象,配置到spring容器中
                d、mapeer代理对象或者是dao实现类配置到spring容器中。
        第五步:编写dao或者mapper文件
        第六步:测试。

2、三种dao的实现方式:我们只讲第三种,有兴趣的同学可以通过码云下载相关代码进行学习,文末有链接

    a、传统dao的开发方式
    b、使用mapper代理形式开发方式
    c、使用扫描包配置mapper代理。

3、相关代码

    UserMapper接口:
        public interface UserMapper {
            User getUserByQueryVo(QueryVo queryVo);
            int findUserCount();
            List<User> findUserList(User user);
            List<User> findUseListByIds(QueryVo queryVo);
        }
    
    UserMapper.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="com.kid.mybatis.mapper.UserMapper">
            <!-- 查询用户总数 -->
            <select id="findUserCount" resultType="int">
                select count(*) from user 
            </select>
        </mapper>
    
    db.properties和log4j.properties 参照前面项目
    
    SqlMapperConfig.xml:
        <?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>
            <!-- 配置别名 -->
            <typeAliases>
                <package name="com.kid.mybatis.pojo"/>
            </typeAliases>
        </configuration>
    
    applicationContext.xml:
        <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
            xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
            xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
            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-4.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
            
            <!-- 加载数据库配置文件 -->
            <context:property-placeholder location="classpath:db.properties"/>
            
            <!-- 数据库连接池 -->
            <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
                <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>
            
            <!-- mapper配置 -->
            <!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->
            <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" scope="prototype">
                <!-- 数据库连接池 -->
                <property name="dataSource" ref="dataSource"/>
                <!-- 加载mybatis的全局配置文件 -->
                <property name="configLocation" value="classpath:SqlMapperConfig.xml"/>
            </bean>
            
            <!-- 配置包扫描器 -->
            <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
                <!-- 配置要扫描的包 ,如果扫描多个包使用半角逗号分隔 -->
                <!-- <property name="basePackage" value="cn.kid.mybatis.mapper,com.kid.mybatis.mapper"/> -->
                <property name="basePackage" value="com.kid.mybatis.mapper"/>
            </bean>
        </beans>

下载所有项目地址:点我

项目结构图

技术分享图片

Mybatis学习(六)

标签:inter   scope   typealias   方式   分享   org   drive   全局   数据库驱动   

原文地址:https://www.cnblogs.com/miantiao312/p/9649569.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!