Spring整合Mybatis

Spring同Mybatis的整合

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

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

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

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

    <?xmlversion="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"> 

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

         <beanid="jdbcDataSource"

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

                   <propertyname="driverClassName">

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

                   </property>

                   <propertyname="url">

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

                   </property>

                   <propertyname="username">

                            <value>bbs</value>

                   </property>

                   <propertyname="password">

                            <value>123</value>

                   </property>

         </bean> 

 

</beans>

2)配置mybatis的SqlSessionFactory(也需要在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

<?xmlversion="1.0" encoding="UTF-8" ?>

<!DOCTYPEmapper

  PUBLIC "-//mybatis.org//DTD Mapper3.0//EN"

 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mappernamespace="com.gxa.bj.dao.imp.UserMapper">

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

       insert intoUserInfo(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

         <iftest="userName!=null">

             userName = #{userName},

         </if>

         <iftest="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} WhereuserId=#{userId}

   </update>

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

         select * from userinfo whereuserid=#{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 userNamelike '%${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>

        <iftest="userName!=null">

            And userName like #{userName}

        </if>

        <if test="userId>0">

            And userId =#{userId}

        </if>

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

            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>

           <iftest="userName!=null">

            And userName like #{userName}

        </if>

        <if test="userId >=10">

            And userId =#{userId}

        </if>

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

            And userPwd like #{userPwd}

        </if>

        </where>

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

 

   </select>

  

</mapper>

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

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

packagecom.gxa.bj.service;

 

importjava.util.List;

 

importcom.gxa.bj.dao.imp.UserMapper;

importcom.gxa.bj.model.UserInfo;

 

public classUserInfoService {

          private UserMapper userMapper;

    public UserMapper getUserMapper() {

                   return userMapper;

          }

          public void setUserMapper(UserMapperuserMapper) {

                   this.userMapper = userMapper;

          }

          public List<UserInfo>getList(UserInfo t){

              returnuserMapper.getList(t);

    }

}

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

packagecom.gxa.bj.action;

 

importjava.util.List;

 

importcom.gxa.bj.model.UserInfo;

importcom.gxa.bj.service.UserInfoService;

 

public classUserInfoAction {

    private UserInfoService userInfoService;

          public UserInfoService getUserInfoService(){

                   return userInfoService;

          }

          public voidsetUserInfoService(UserInfoService userInfoService) {

                   this.userInfoService =userInfoService;

          }

          public List<UserInfo>getList(UserInfo u){

                   returnuserInfoService.getList(u);

          }

}

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

<!--配置dao层 --> 

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

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

       <propertyname="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">

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

   </bean>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值