• Spring整合Mybatis


    Mybatis回顾(核心步骤)

    编写实体类

    package com.kuang.pojo;

    public class User {
       private int id;  //id
       private String name;   //姓名
       private String pwd;   //密码
    }

    编写核心配置文件

    • 注意mybatis的配置文件中各个标签是有顺序的
    <?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>

        <properties resource="jdbc.properties" ></properties>

        <typeAliases>
            <typeAlias type="com.mybatis.POJO.User" alias="user" />
        </typeAliases>

        <plugins>
            <plugin interceptor="com.github.pagehelper.PageHelper">
                <property name="dialect" value="mysql"/>
            </plugin>
        </plugins>

        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC"></transactionManager>
                <dataSource type="POOLED">
                    <property name="driver" value="${jdbc.driver}"/>
                    <property name="url" value="${jdbc.url}"/>
                    <property name="username" value="${jdbc.username}"/>
                    <property name="password" value="${jdbc.password}"/>
                </dataSource>
            </environment>
        </environments>


        <mappers>
            <!--要用class注册的话,接口和mapper.xml文件必须在同一个包下,而且名字要一致-->
            <mapper resource="com.mybatis.mapper/UserMapper.xml" />
        </mappers>
    </configuration>

    编写接口类

    public interface UserMapper {

         List<User> findAll() throws IOException;

         List<User> findByCondition( User user);

         List<User> findByIds( List<Integer> list);

         void save(User user);
    }

    编写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="com.mybatis.Dao.UserMapper" >

        <select id="findAll" resultType="user">
        select * from user
        </select>

        <select id="findByCondition" resultType="user" parameterType="user">
        select * from user
        <where>
            <if test="id != 0">
            and id = #{id}
            </if>
            <if test="username != null and username != ''">
            and username = #{username}
            </if>
            <if test="password != null and password != ''">
            and password = #{password}
            </if>
        </where>
        </select>

        <select id="findByIds" parameterType="list" resultType="user">
        select * from user
        <where>
        <foreach collection="list" item="id" open="id in(" close=")" separator=",">
        #{id}
    </foreach>
    </where>
    </select>

    <select id="save" parameterType="user">
      insert into user values (#{id},#{username},#{password},#{birthday})
    </select>
    </mapper>

    Spring整合Mybatis

    什么是 MyBatis-Spring?

    MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。
    对应的maven

    <dependency>
       <groupId>org.mybatis</groupId>
       <artifactId>mybatis-spring</artifactId>
       <version>2.0.2</version>
    </dependency>
    • 要和 Spring 一起使用 MyBatis,需要在 Spring 应用上下文中定义至少两样东西:一个 SqlSessionFactory 和至少一个数据映射器类。
    1. 创建spring的核心配置文件
    2. 配置数据源代替mybatis的数据源
    3. 配置SqlSessionFactory,关联MyBatis
    4. 注册sqlSessionTemplate,关联sqlSessionFactory;
    • SqlSessionTemplate 是 MyBatis-Spring 的核心。作为 SqlSession 的一个实现,这意味着可以使用它无缝代替你代码中已经在使用的 SqlSession。
    1. 增加Dao接口的实现类;私有化sqlSessionTemplate
    2. 注册bean实现
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.2.xsd">

        <context:property-placeholder location="jdbc.properties" />

    <!--    配置数据源-->
        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName"   value="${jdbc.driver}"/>
            <property name="url"               value="${jdbc.url}" />
            <property name="username"          value="${jdbc.username}" />
            <property name="password"          value="${jdbc.password}" />
        </bean>

    <!--    配置sqlSessionFactory-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
    <!--        关联mybatis-->
            <property name="configLocation" value="classpath:sqlMapConfig.xml"/>
    <!--        <property name="mapperLocations" value="com/mybatis/Dao/*.xml" />-->
        </bean>


        <!--注册sqlSessionTemplate , 关联sqlSessionFactory-->
        <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
            <!--利用构造器注入-->
            <constructor-arg index="0" ref="sqlSessionFactory"/>
        </bean>

        <bean id="userDao" class="com.mybatis.Dao.UserDaoImpl">
            <property name="sqlSession" ref="sqlSessionTemplate" />
        </bean>
    </beans>
  • 相关阅读:
    我用纯C语言开发的中英文混合分词服务器3.0正式发布,词库190多万词,每秒切分5万+,同时提供 c、java、C#、delphi、js调用范例
    藏拙空间上线了!
    说实话我只能灌水,我谈技术你们有几个懂的啊?不信?随便发一段我写的代你们有几个能看懂的啊?
    明明三句话就能说清楚的事,专家们长篇大论,为何?
    正在开发云ERP,业务功能与天心CS ERP一模一样, 欢迎大家指正
    我的 云寻觅 搜索引擎 开始公测,前天开始开发,昨天买域名,今天发布在本机,请各路专家指正! 顺便开源!
    20071225是个值得纪念的日子,我用纯C语言开发的空间首次上线测试!
    给C# .NET 的兄弟们做点小贡献 NoSql LevelDB .net 移植版 普通PC 100万条数据插入不超过4秒
    开源:给每个文档计算一个指纹,然后用指纹进行相似度的计算 含源码和可执行程序
    国内首款完全由国人自主研发的开源云平台 BDC3.0 详解
  • 原文地址:https://www.cnblogs.com/g414056667/p/14682276.html
Copyright © 2020-2023  润新知