Spring整合iBatis

 maven配置文件引入架包:

 <!-- Spring ORM -->
 <dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-orm</artifactId>
     <version>3.2.5.RELEASE</version>
 </dependency>
 <!-- ibatis -->
 <dependency>
     <groupId>org.apache.ibatis</groupId>
     <artifactId>ibatis-sqlmap</artifactId>
     <version>2.3.0</version>
 </dependency>
 <!-- c3p0 -->
 <dependency>
     <groupId>c3p0</groupId>
     <artifactId>c3p0</artifactId>
     <version>0.9.1.2</version>
 </dependency>
 <!-- mysql -->
 <dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>5.1.9</version>
 </dependency>


 Spring配置文件:

 <!-- 引入配置文件 -->
 <context:property-placeholder location="classpath:properties/jdbc.properties" />

 <!-- c3p0连接池 -->
 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
     <property name="driverClass" value="${jdbc.driverClass}" />
     <property name="jdbcUrl" value="${jdbc.url}" />
     <property name="user" value="${jdbc.user}" />
     <property name="password" value="${jdbc.password}" />
     <property name="initialPoolSize" value="${jdbc.initialPoolSize}" />
     <property name="maxIdleTime" value="${jdbc.maxIdleTime}" />
     <property name="maxPoolSize" value="${jdbc.maxPoolSize}" />
     <property name="minPoolSize" value="${jdbc.minPoolSize}" />
 </bean>

 <!-- ibatis -->
 <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
     <property name="dataSource" ref="dataSource" />
     <property name="configLocations">
         <list>
             <value>classpath:context/sql_map.xml</value>
         </list>
     </property>
 </bean>


 Dao父类:

 /**
  * Dao父类
  * 
  * @author 张成轩
  */
 @SuppressWarnings("deprecation")
 @Repository
 public abstract class SQLMapDao extends SqlMapClientDaoSupport {

     @Resource
     public void init(SqlMapClient sqlMapClient) {
         this.setSqlMapClient(sqlMapClient);
     }
 }


 例子:

     sql_map.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" 
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
    <sqlMap resource="com/loong/db/sql/User.xml" />
</sqlMapConfig>

    User.xml:

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "sql-map-2.dtd">
 <sqlMap>
     <typeAlias alias="userBean" type="com.loong.db.schema.UserSchema" />
     <resultMap id="userResult" class="userBean">
         <result property="user" column="USER" />
         <result property="password" column="PASSWORD" />
     </resultMap>
     <insert id="insertUser" parameterClass="userBean">
         INSERT INTO LB_USER (
             USER, PASSWORD
         ) VALUES (
             #user#, #password#
         )
    </insert>
    <update id="updateUser" parameterClass="userBean">
        UPDATE LB_USER
        SET
            PASSWORD =  #password#
        WHERE
            USER = #user#
    </update>
    <select id="getAllUsers" resultMap="userResult">
        SELECT
            USER,
            PASSWORD
        FROM
            LB_USER
    </select>
    <select id="getUser" resultMap="userResult" parameterClass="userBean">
        SELECT
            USER,
            PASSWORD
        FROM
            LB_USER
        WHERE
            1 = 1
        <dynamic prepend=" ">
            <isPropertyAvailable property="user">
                AND USER = #user#
            </isPropertyAvailable>
        </dynamic>
    </select>
 </sqlMap>

 UserSchema类:

 public class UserSchema {
     private String user;
     private String password;
     public String getUser() {
         return user;
     }
     public void setUser(String user) {
         this.user = user;
     }
     public String getPassword() {
         return password;
     }
     public void setPassword(String password) {
         this.password = password;
     }
 }

UserDao类:

 @Repository
 public class UserDao extends SQLMapDao {
     /**
      * 插入
      */
     @SuppressWarnings("deprecation")
     public void insert(UserSchema schema) {
         getSqlMapClientTemplate().insert("insertUser", schema);
     }
     /**
      * 更新
      */
     @SuppressWarnings("deprecation")
     public void update(UserSchema schema) {
         getSqlMapClientTemplate().update("updateUser", schema);
     }
     /**
      * 获取全部数据
      */
     @SuppressWarnings({ "unchecked", "deprecation" })
     public List<UserSchema> getAll() {
         return getSqlMapClientTemplate().queryForList("getAllUsers");
     }
     /**
      * 获取数据
      */
     @SuppressWarnings({ "deprecation" })
     public UserSchema getByUser(UserSchema schema) {
         return (UserSchema) getSqlMapClientTemplate().queryForObject("getUser", schema);
     }
 }




你可能感兴趣的:(Spring整合iBatis)