• 关于Spring和mybatis的整合


    SpringMybatis的整合

    1.引入相应的jar包。(Mybatisjar包,Springjar包,mybatis-spring-1.1.1.jar)。

    2.编写相应的包(三层的包)。搭建。

    3.配置相应的spring的配置。

     1)配置相应的数据源的配置。

        <?xml version="1.0" encoding="UTF-8"?>

    <beans

    xmlns="http://www.springframework.org/schema/beans"  

        xmlns:tx="http://www.springframework.org/schema/tx"  

        xmlns:p="http://www.springframework.org/schema/p"  

        xmlns:aop="http://www.springframework.org/schema/aop"   

        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   

        http://www.springframework.org/schema/tx   

        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd   

        http://www.springframework.org/schema/aop    

        http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">  

        <!-- 配置数据源-->

    <bean id="jdbcDataSource"

    class="org.springframework.jdbc.datasource.DriverManagerDataSource">

    <property name="driverClassName">

    <value>oracle.jdbc.driver.OracleDriver</value>

    </property>

    <property name="url">

    <value>jdbc:oracle:thin:@127.0.0.1:1521:orcl</value>

    </property>

    <property name="username">

    <value>bbs</value>

    </property>

    <property name="password">

    <value>123</value>

    </property>

    </bean>  

      

    </beans>

    2)配置mybatisSqlSessionFactory(也需要在ApplicationContext里做配置)。

        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  

          <property name="dataSource" ref="jdbcDataSource" />  

          <property name="configLocation" value="classpath:mybatis-config.xml"></property>  

       </bean>

    4.搭建mybatis的框架了(编写相应的实体类,SQL映射文件)。结果如下:

      

    注意的问题:去掉<association>节点里的foreignColumn属性。

                去掉所有的select节点里的resultSets的属性。

    比如之前设置的UserInfoMapper

    <?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.gxa.bj.dao.imp.UserMapper">

       <insert id="addItem" parameterType="com.gxa.bj.model.UserInfo">

           insert into UserInfo(userid,username,userpwd,useremail,useraddress,regreason)

           values(usernext.nextval,#{userName},#{userPwd},#{userEmail},#{userAddress},#{regReason})

       </insert>

       <delete id="removeItem">

            delete from UserInfo where userId=#{id}

       </delete>

       <update id="updateItem" parameterType="com.gxa.bj.model.UserInfo">

             update userinfo set

             <if test="userName!=null">

                 userName = #{userName},

             </if>

             <if test="userPwd!=null">

                 userPwd = #{userPwd},

             </if>

             <if test= "userEmail!=null">

                 userEmail = #{userEmail},

             </if>

             <if test= "userAddress!=null">

                 userAddress = #{userAddress},

             </if>

             <if test= "regReason!=null">

                regReason = #{regReason},

             </if>

              userId=#{userId} Where userId=#{userId}

       </update>

       <select id="getModel" resultType="com.gxa.bj.model.UserInfo">

             select * from userinfo where userid=#{id}

       </select>

       <select id="getUsers" parameterType="java.lang.String" resultType="com.gxa.bj.model.UserInfo" resultSets="com.gxa.bj.model.UserInfo">

            select * from userinfo where userName like '%${value}%'

       </select>

       <select id="getList" resultSets="com.gxa.bj.model.UserInfo" parameterType="com.gxa.bj.model.UserInfo" resultType="com.gxa.bj.model.UserInfo">

            Select * From userInfo

            <where>

            <if test="userName!=null">

                And userName like #{userName}

            </if>

            <if test="userId>0">

                And userId =#{userId}

            </if>

            <if test="userPwd!=null and userPwd!=''">

                And userPwd like #{userPwd}

            </if>

            </where>

       </select>

       <select id="getListByPage" parameterType="com.gxa.bj.model.UserInfoPage"  resultType="com.gxa.bj.model.UserInfo">

        

        Select u.*

        From (Select rownum as num, userinfo.*

              from userinfo

              <where>

               <if test="userName!=null">

                And userName like #{userName}

            </if>

            <if test="userId >= 10">

                And userId =#{userId}

            </if>

            <if test="userPwd!=null and userPwd !='' ">

                And userPwd like #{userPwd}

            </if>

            </where>

              ) u Where u.num between  #{startNum} and #{endNum}

      

       </select>

       

    </mapper>

    5.编写相应的dao层。比如创建的是UserInfoMapper。截图如下:(这个层里全是接口)

    6.编写相应的Service层,sevice层里需要引入的是dao层。

    package com.gxa.bj.service;

    import java.util.List;

    import com.gxa.bj.dao.imp.UserMapper;

    import com.gxa.bj.model.UserInfo;

    public class UserInfoService {

    private UserMapper userMapper;

        public UserMapper getUserMapper() {

    return userMapper;

    }

    public void setUserMapper(UserMapper userMapper) {

    this.userMapper = userMapper;

    }

    public List<UserInfo> getList(UserInfo t){

         return userMapper.getList(t);

        }

    }

    7.编写相应的action层:action层里需要service层:

    package com.gxa.bj.action;

    import java.util.List;

    import com.gxa.bj.model.UserInfo;

    import com.gxa.bj.service.UserInfoService;

    public class UserInfoAction {

        private UserInfoService userInfoService;

    public UserInfoService getUserInfoService() {

    return userInfoService;

    }

    public void setUserInfoService(UserInfoService userInfoService) {

    this.userInfoService = userInfoService;

    }

    public List<UserInfo> getList(UserInfo u){

    return userInfoService.getList(u);

    }

    }

    8.spring里的配置文件,将各层注入到spring中。

    <!--配置dao-->  

       <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">

           <property name="mapperInterface" value="com.gxa.bj.dao.imp.UserMapper"></property>

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

       </bean>

       <!-- 配置Service-->

       <bean id="userInfoService" class="com.gxa.bj.service.UserInfoService">

           <property name="userMapper" ref="userMapper"></property>

       </bean>

       <!-- 配置Action-->

       <bean id="userInfoAction" class="com.gxa.bj.action.UserInfoAction">

           <property name="userInfoService" ref="userInfoService"></property>

       </bean>

  • 相关阅读:
    Java导出Excel和CSV(简单Demo)
    ffmepg命令行参数
    VLC命令参数(转载)
    深入Java虚拟机读书笔记第五章Java虚拟机
    JS常用方法记录
    记一次数据库的优化
    Infobright数据库使用
    Mysql连接驱动8.0版本改动
    Eclipse新建SrpingBoot项目Pom.xml文件报错
    SpringBoot 热部署开发
  • 原文地址:https://www.cnblogs.com/hyj-zy/p/5648848.html
Copyright © 2020-2023  润新知