ibatis案例1

来源:互联网 发布:中国制造业数据 编辑:程序博客网 时间:2024/05/18 20:47

本文转自:http://www.cppblog.com/biao/archive/2010/10/24/131051.html

有修改


1.SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE sqlMapConfig     PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"     "http://www.ibatis.com/dtd/sql-map-config-2.dtd"><sqlMapConfig>    <settings cacheModelsEnabled="true" enhancementEnabled="true"        lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"        maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />    <transactionManager type="JDBC">        <dataSource type="SIMPLE">            <!-- JDBC连接需要的配置 -->            <property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />            <property name="JDBC.ConnectionURL"                value="jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=UTF-8" />            <property name="JDBC.Username" value="root" />            <property name="JDBC.Password" value="wodwl" />                        <!-- 连接池配置 -->            <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 sample" />            <property name="Pool.PingEnabled" value="false" />            <property name="Pool.PingConnectionsOlderThan" value="1" />            <property name="Pool.PingConnectionsNotUsedFor" value="1" />        </dataSource>    </transactionManager>    <!-- 映射文件 -->    <sqlMap resource="com/wodwl/map/User.xml" /></sqlMapConfig> 

2.User.xml配置


<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sqlMap PUBLIC    "-//iBATIS.com//DTD SQL Map 2.0//EN"    "http://www.ibatis.com/dtd/sql-map-2.dtd"><sqlMap namespace="User">    <!-- 设置本映射中的别名: 方便使用 -->    <typeAlias alias="user" type="com.wodwl.User" />    <typeAlias alias="string" type="java.lang.String" />    <typeAlias alias="integer" type="java.lang.Integer" />    <!-- 增删查改的Statement配置 -->    <select id="getAllUsers" resultClass="user"><![CDATA[        SELECT id, name FROM user ORDER BY id    ]]></select>        <select id="getUser" resultClass="user" parameterClass="integer"><![CDATA[        SELECT id, name FROM user WHERE id=#id#    ]]></select>        <update id="updateUser" parameterClass="user"><![CDATA[        UPDATE user SET name=#name# WHERE id=#id#    ]]></update>    <insert id="insertUser" parameterClass="user"><![CDATA[        INSERT INTO user (name) VALUES (#name#)    ]]></insert>    <delete id="deleteUser" parameterClass="integer"><![CDATA[        DELETE FROM user WHERE id=#id#    ]]></delete></sqlMap>

3.POJO配置

package com.wodwl;public class User {private int id;private String name;public User() {}public User(String name) {this(0, name);}public User(int id, String name) {this.id = id;this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "ID: " + id + ", Name: " + name;}}


4.测试类

package com.wodwl;import java.io.IOException;import java.io.Reader;import java.util.List;import com.ibatis.common.resources.Resources;import com.ibatis.sqlmap.client.SqlMapClient;import com.ibatis.sqlmap.client.SqlMapClientBuilder;public class Test {    public static enum Mode {        INSERT, UPDATE, DELETE    }    public void update(Object arg, Mode mode) {        SqlMapClient smc = null;        try {            smc = getSqlMapClient();            smc.startTransaction();            switch (mode) {            case INSERT: smc.insert("insertUser", arg); break;            case UPDATE: smc.update("updateUser", arg); break;            case DELETE: smc.delete("deleteUser", arg); break;            }            smc.commitTransaction();        } catch (Exception e) {            e.printStackTrace();        } finally {            endTransaction(smc);        }    }    public void listUsers() {        SqlMapClient smc = null;        try {            smc = getSqlMapClient();            smc.startTransaction();            List users = smc.queryForList("getAllUsers", null);            System.out.println(users);            smc.commitTransaction();        } catch (Exception e) {            e.printStackTrace();        } finally {            endTransaction(smc);        }    }    public User selectUser(int id) {        User user = null;        SqlMapClient smc = null;        try {            smc = getSqlMapClient();            smc.startTransaction();            user = (User) smc.queryForObject("getUser", id);            smc.commitTransaction();        } catch (Exception e) {            e.printStackTrace();        } finally {            endTransaction(smc);        }        return user;    }    //// ////////////////////////////////////////////////////////////////////////    private SqlMapClient getSqlMapClient() throws IOException {        // 初始化ibatis, 获得一个SqlMapClient对象        String resource = "com/wodwl/map/SqlMapConfig.xml";        Reader reader = Resources.getResourceAsReader(resource);        return SqlMapClientBuilder.buildSqlMapClient(reader);    }    private void endTransaction(SqlMapClient smc) {        if (smc == null) { return; }        try {            smc.endTransaction();        } catch (Exception e2) {            e2.printStackTrace();        }    }    public static void main(String[] args) {        Test t = new Test();        t.listUsers();        User user = new User("Biao");        user = t.selectUser(1);        user.setName("Biao 黄河");        t.update(user, Mode.UPDATE);        // t.update(user, Mode.INSERT);        // t.update(Integer.valueOf(7), Mode.DELETE);        t.listUsers();    }}




原创粉丝点击