<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ???????? iBatis并不在運行期自動生成SQL語句,具體的SQL語句由程序員編寫。通過映射文件,將SQL所需的參數,以及返回的結果字段映射到指定的POJO。相對于Hibernate等"全自動"ORM而言,iBatis以SQL開發的工作量和數據庫移植性上的讓步,為系統設計提供了更大的自由空間。

    ??????? 一個簡單的iBatis例子程序。

    1.數據庫表結構。
    use?sample;

    DROP?TABLE?T_User;

    CREATE?TABLE?T_User?(
    ???????id?
    INT?NOT?NULL
    ?????,?name?
    VARCHAR(20)
    ?????,?sex?
    INT
    ?????,?
    PRIMARY?KEY?(id)
    );


    2.POJO類
    package?com.iBatis.sample;

    import?java.io.Serializable;

    public?class?User?implements?Serializable?{
    ????
    private?Integer?id;
    ????
    private?String?name;
    ????
    private?Integer?sex;
    ????
    ????
    public?User(){
    ????????
    ????}
    ????
    ????
    public?Integer?getId()?{
    ????????
    return?id;
    ????}
    ????
    public?void?setId(Integer?id)?{
    ????????
    this.id?=?id;
    ????}
    ????
    public?String?getName()?{
    ????????
    return?name;
    ????}
    ????
    public?void?setName(String?name)?{
    ????????
    this.name?=?name;
    ????}
    ????
    public?Integer?getSex()?{
    ????????
    return?sex;
    ????}
    ????
    public?void?setSex(Integer?sex)?{
    ????????
    this.sex?=?sex;
    ????}

    ????
    }

    3.配置文件
    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"?
    ????????maxRequests
    ="32"?
    ????????maxSessions
    ="10"?
    ????????maxTransactions
    ="5"?
    ????????useStatementNamespaces
    ="false"?
    ????
    />?
    ?????
    ????
    <transactionManager?type="JDBC"?>?
    ????????
    <dataSource?type="SIMPLE">?
    ????????????
    <property?name="JDBC.Driver"?value="com.p6spy.engine.spy.P6SpyDriver"/>?
    ????????????
    <property?name="JDBC.ConnectionURL"?value="jdbc:mysql://localhost:3306/sample"/>?
    ????????????
    <property?name="JDBC.Username"?value="root"/>?
    ????????????
    <property?name="JDBC.Password"?value="1234"/>?
    ????????????
    <property?name="JDBC.DefaultAutoCommit"?value="true"?/>?
    ????????????
    <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>?

    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.iBatis.sample.User"?/>
    ?
    ????
    <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">
    ????????
    <![CDATA[
    ????????????insert?into?t_user?(
    ??????????????name,
    ??????????????sex=)
    ????????????values?(
    ??????????????#name#,
    ??????????????#sex#
    ????????????)
    ????????
    ]]>
    ????
    </insert>????
    ????
    ????
    <delete?id="deleteUser"
    ????????parameterClass
    ="java.lang.String">
    ????????
    <![CDATA[
    ????????????delete?from?t_user
    ????????????where?id?=?#id#
    ????????
    ]]>
    ????
    </delete>????????????
    ????
    </sqlMap>?

    4.測試類
    MyTest.java
    package?com.iBatis.sample;

    import?java.io.IOException;
    import?java.io.Reader;
    import?java.sql.SQLException;

    import?junit.framework.TestCase;
    import?com.ibatis.common.resources.Resources;
    import?com.ibatis.sqlmap.client.SqlMapClient;
    import?com.ibatis.sqlmap.client.SqlMapClientBuilder;

    public?class?MyTest?extends?TestCase{

    ????SqlMapClient?sqlMap?
    =?null;????
    ????
    ????
    protected?void?setUp(){
    ????????
    try?{
    ????????????String?resource?
    =?"com/iBatis/sample/SqlMapConfig.xml";
    ????????????Reader?reader;
    ????????????reader?
    =?Resources.getResourceAsReader(resource);
    ????????????sqlMap?
    =?SqlMapClientBuilder.buildSqlMapClient(reader);
    ????????}?
    catch?(IOException?e)?{
    ????????????
    //?TODO:?handle?exception
    ????????????e.printStackTrace();
    ????????}
    ????}
    ????
    ????
    public?void?testIBatis()?throws?Exception{
    ????????
    try?{
    ????????????sqlMap.startTransaction();
    ????????????
    ????????????User?user?
    =?new?User();
    ????????????user.setId(
    new?Integer(1));
    ????????????user.setName(
    "baiyf");
    ????????????user.setSex(
    new?Integer(1));
    ????????????
    ????????????sqlMap.update(
    "updateUser",?user);
    ????????????sqlMap.commitTransaction();
    ????????????
    ????????}
    catch(SQLException?e){
    ????????????e.printStackTrace();
    ????????}
    ????????
    finally?{
    ????????????sqlMap.endTransaction();
    ????????}
    ????}
    }

    ID指定了操作id,可以在代碼中通過指定操作id來執行此節點定義的操作。
    如:
    sqlMap.update("updateUser", user);
    posted on 2006-07-22 17:50 knowhow 閱讀(485) 評論(1)  編輯  收藏 所屬分類: ORM:Hibernate及其他
    主站蜘蛛池模板: 理论片在线观看免费| 亚洲最大在线视频| 人碰人碰人成人免费视频| 特级淫片国产免费高清视频| 亚洲免费人成视频观看| 久久午夜免费视频| 亚洲资源最新版在线观看| 黄瓜视频高清在线看免费下载| 亚洲码在线中文在线观看| 91免费人成网站在线观看18| 91亚洲精品自在在线观看| A在线观看免费网站大全| 亚洲人成网站免费播放| 国产成人精品男人免费| 免费看美女午夜大片| 亚洲色偷偷综合亚洲AVYP| 毛片无码免费无码播放| 亚洲一线产区二线产区精华| 啦啦啦www免费视频| 人人狠狠综合久久亚洲| 91麻豆精品国产自产在线观看亚洲| 男人的天堂网免费网站| 亚洲欧洲高清有无| 毛片a级毛片免费播放100| 美女黄色免费网站| 亚洲av色影在线| 男男AV纯肉无码免费播放无码| 国产偷国产偷亚洲清高APP| 永久亚洲成a人片777777| 日韩精品内射视频免费观看| 亚洲色欲色欲www| 免费国产成人高清视频网站| 精品国产污污免费网站入口| 亚洲精品自拍视频| 国产美女做a免费视频软件| 美女视频黄a视频全免费网站色窝| 亚洲伊人久久大香线蕉在观| 亚洲高清免费视频| 91频在线观看免费大全| 一级黄色片免费观看| 亚洲国产精品综合久久2007|