zoukankan      html  css  js  c++  java
  • spring2.5 + ibatis2.3.4 整合开发

    spring所需包:

    ——————————————————————————————

    dist\spring.jar                     //spring核心包

    lib\jakarta-commons\commons-logging.jar//spring日志所需包

    lib\log4j\log4j-1.2.15.jar              //log4j日志包使用该包需要配置properties文件 具体配置参考?

    lib\aspectj\aspectjrt.jar              //AOP编程必备包

    lib\aspectj\aspectjweaver.jar          //AOP编程必备包

    以上包为spring配置基本包。

    lib\junit\junit-4.4.jar               //如需单元测试,加入此包

    lib\jakarta-commons\commons-dbcp.jar  //DBCP缓冲池框架整合ibatis所需包

    lib\jakarta-commons\commons-pool.jar  //Apache的通用池Jar包,如果不加入将出现不能创建datasourcebean

    dist\resources\spring-beans-2.5.xsd  //spring在eclipse中配置提示必备文件 配置xml catalog

    ——————————————————————————————

    ibatis所需包:

    ——————————————————————

    ibatis2.3.4.8.jar  //ibatis必备包

    log4j-1.2.16.jar   //log4j日志输出包(与spring中的log4j包任选一个)

    mysql-connector-java-5.1.6-bin.jar  //mysql数据库驱动包

    ——————————————————————

    Spring的ibatis配置文件beans-ibatis.xml:

     

    <?xml version="1.0"encoding="UTF-8"?>
    
    <beans xmlns="http://www.springframework.org/schema/beans"
    
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    
           xmlns:aop="http://www.springframework.org/schema/aop"
    
           xmlns:tx="http://www.springframework.org/schema/tx"
    
           xsi:schemaLocation="
    
               http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    
               http://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.5.xsd
    
               http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
    
        <!-- DHCP方式配置数据源 -->
    
         <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">  
    
            <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
    
            <property name="url" value="jdbc:mysql://127.0.0.1:3306/test"/>  
    
            <property name="username" value="root"/>  
    
            <property name="password" value="root"/>
    
        </bean>   
    
       
    
        <bean id="client" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
    
           <property name="dataSource"ref="dataSource"/>  
    
           <property name="configLocation"value="classpath:SqlMapConfig.xml"/>
    
        </bean>
    
       
    
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    
           <property name="dataSource"ref="dataSource"/>
    
        </bean>
    
       
    
        <bean id="userDAO" class="dao.imp.UserDAOIMP">      
    
           <property name="sqlMapClient">
    
               <ref local="client"/>
    
           </property>
    
        </bean>
    
       
    
        <bean id="userDAOProxy"
    
           class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    
           <property name="transactionManager">
    
              <ref bean="transactionManager" />
    
           </property>
    
           <property name="target">
    
              <ref local="userDAO" />
    
           </property>
    
           <property name="transactionAttributes">
    
              <props>
    
              <prop key="insert*">PROPAGATION_REQUIRED</prop>
    
              <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
    
              </props>
    
           </property>
    
        </bean>
    
       
    
    </beans>

    SqlMap.xml配置文件:User.xml

    <?xml version="1.0"encoding="UTF-8"?>
    <!DOCTYPE sqlMap
    
    PUBLIC "-//iBATIS.com//DTD SQLMap 2.0//EN"
    
        "http://www.ibatis.com/dtd/sql-map-2.dtd">
    
    <sqlMap namespace="User">
    
    <typeAlias alias="user"type="vo.User"/>
    
      <select id="selectUser"parameterClass="java.lang.String" resultClass="user">
    
        select* from t_user where name = #name#
    
      </select>
    
      <select id="getUser" parameterClass="java.lang.String"resultClass="user">
    
        <![CDATA[
    
        select name, sex from t_user where name =#name#
    
        ]]>
    
      </select>
    
      <update id="updateUser"parameterClass="user">
    
        <![CDATA[
    
            UPDATE t_user SET name=#name#,sex=#sex#WHERE id = #id#
    
        ]]>
    
      </update>
    
      <insert id="insertUser"parameterClass="user" >
    
        INSERT INTO t_user (id,name,sex) VALUES(#id#,#name#,#sex#)
    
      </insert>
    
      <delete id="deleteUser"parameterClass="java.lang.String">
    
        delete from t_user where id = #value#
    
      </delete>
    
    </sqlMap>


    整合前itabits的SqlMapConfig.xml文件配置:

    <?xml version="1.0"encoding="UTF-8" ?>
    
     
    
    <!DOCTYPE sqlMapConfig  
    
        PUBLIC "-//ibatis.apache.org//DTDSQL Map Config 2.0//EN"  
    
        "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> 
    
     
    
    <sqlMapConfig>
    
      <!--<properties resource="com/ibatis/sample/SqlMap.properties"/>-->
    
      <settings
    
        cacheModelsEnabled="true"     
    
        enhancementEnabled="true"     
    
        lazyLoadingEnabled="true"     
    
        errorTracingEnabled="true"     
    
        maxRequests="32"         
    
        maxSessions="10"         
    
        maxTransactions="5"         
    
        useStatementNamespaces="false"  
    
        />
    
     
    
      <transactionManager type="JDBC">  
    
          <dataSource type="SIMPLE">
    
              <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>
    
              <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/test"/>
    
              <property name="JDBC.Username" value="root"/>
    
              <property name="JDBC.Password" value="root"/>
    
              <property name="Pool.MaximumActiveConnections" value="10"/>
    
              <property  name="Pool.MaximumIdleConnections"  value="5"/>
    
              <property name="Pool.MaximumCheckoutTime" value="120000"/>
    
              <property name="Pool.TimeToWait" value="500"/>
    
              <property name="Pool.PingQuery" value="select 1 from ACCOUNT"/>
    
              <property name="Pool.PingEnabled" value="false"/>
    
              <property name="Pool.PingConnectionsOlderThan" value="1"/>
    
              <property name="Pool.PingConnectionsNotUsedFor" value="1"/>
    
          </dataSource>      
    
      </transactionManager>
    
      
    
      <sqlMap resource="com/ibatis/sample/User.xml"/>
    
    </sqlMapConfig>
    
     
    
    整合后SqlMapConfig.xml文件配置:
    
    <?xml version="1.0"encoding="UTF-8" ?>
    
     
    
    <!DOCTYPE sqlMapConfig  
    
        PUBLIC "-//ibatis.apache.org//DTDSQL Map Config 2.0//EN"  
    
        "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> 
    
     
    
    <sqlMapConfig>      
    
      <sqlMap resource="vo/User.xml"/>
    
    </sqlMapConfig>


    Spring使用ibatis功能代码:

    BeanFactory bf = (BeanFactory)(newClassPathXmlApplicationContext("beans-ibatis.xml"));
    
           UserDAOuserdao = (UserDAO)bf.getBean("userDAOProxy");
    
     
    
           User user = new User();
    
           user.setId(0);
    
           user.setName("aaa");
    
           user.setSex(1);
    
          
    
           userdao.insert(user);


    UserDAO的实现类UserDAOIMP,调用插入方法

    @Override
    
        publicvoid insert(User user) {
    
           System.out.println("UserDAOIMP的insert(user)方法被调用");
    
                 
    
           getSqlMapClientTemplate().update("insertUser",user);
    
        }


  • 相关阅读:
    关于GDI+的图片质量
    断点续传的Demo
    offic2007 ,offic2010安装失败 1935错误处理方案
    Easy Slider幻灯片 API
    Lazyload.js延迟加载效果
    MVC3中 多种跳转方式总结
    MVC中 DropDownList编辑默认选中的使用
    ASP.NET Session的七点认识
    easyui 的datagrid的自适应宽度的问题
    Linux常用文件操作高频使用命令
  • 原文地址:https://www.cnblogs.com/fyq891014/p/3294812.html
Copyright © 2011-2022 走看看