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

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

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

    瘋狂

    STANDING ON THE SHOULDERS OF GIANTS
    posts - 481, comments - 486, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    ibatis學習(一)--ibatis介紹以及用例

    Posted on 2007-12-07 18:31 瘋狂 閱讀(9787) 評論(0)  編輯  收藏
     

    介紹

    iBATIS是以SQL為中心的持久化層框架。能支持懶加載、關聯查詢、繼承等特性。

    iBATIS不同于一般的OR映射框架(eg:hibernate)OR映射框架,將數據庫表、字段等映射到類、屬性,那是一種元數據(meta-data)映射。iBATIS則是將SQL查詢的參數和結果集映射到類。因此可以說,iBATIS做的是SQL Mapping的工作。它把SQL語句看成輸入以及輸出,結果集就是輸出,而where后面的條件參數則是輸入。iBATIS能將輸入的普通POJO對象、MapXML等映射到SQL的條件參數上,同時也可以將查詢結果映射到普通POJO對象(集合)、MapXML等上面。

    iBATIS使用xml文件來映射這些輸入以及輸出。能大大減少數據庫存儲部分的代碼量,而且可以非常方便的利用SQL中的一些小技巧。

    簡單示例

    基于ibatis-2.3.0.677版本。

    1、 創建新的項目,并引入jar

    a)         ibatis-2.3.0.677.jar

    b)        mysql驅動

    2、 在類路徑中(classes下)提供ibatis的配置文件:sqlMapConfig.xml

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE sqlMapConfig     

        PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"     

        "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

    <sqlMapConfig>

     <transactionManager type="JDBC" commitRequired="false">

        <dataSource type="SIMPLE">

          <property name="JDBC.Driver" value="com.mysql.jdbc.Driver"/>

          <property name="JDBC.ConnectionURL" value="jdbc:mysql://127.0.0.1/ibatis"/>

          <property name="JDBC.Username" value="root"/>

          <property name="JDBC.Password" value="mysql"/>

        </dataSource>

     </transactionManager>

     <sqlMap resource="com/ibatis/model/User.xml"/>

    </sqlMapConfig>

    3、創建實體類:User.java

    package com.ibatis.model;

    publicclass User {

        privateintid;

        private String username;

        private String password;

       

        publicint getId() {

           returnid;

        }

        publicvoid setId(int id) {

           this.id = id;

        }

        public String getPassword() {

           returnpassword;

        }

        publicvoid setPassword(String password) {

           this.password = password;

        }

        public String getUsername() {

           returnusername;

        }

        publicvoid setUsername(String username) {

           this.username = username;

        }

    }

    4、創建針對User對象的CRUDxml映射配置:User.xml

    <?xml version="1.0" encoding="UTF-8" ?>

    <!DOCTYPE sqlMap     

        PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"     

        "http://ibatis.apache.org/dtd/sql-map-2.dtd">

    <sqlMap namespace="User">

     <!-- Use type aliases to avoid typing the full classname every time. -->

     <typeAlias alias="User" type="com.ibatis.model.User"/>

     <!-- Select with no parameters using the result map for Account class. -->

     <select id="selectAllUsers" resultClass="User">

        select * from t_user

     </select>

     

     <select id="selectUser" resultClass="User" parameterClass="int">

      select * from t_user where id=#id#

     </select>

     

     <insert id="insertUser" parameterClass="User">

      insert into t_user values (

           null,#username#,#password#

      )

     </insert>

     

     <update id="updateUser" parameterClass="User">

      update t_user set username = #username#,password=#password#

      where id=#id#

     </update>

     

     <delete id="deleteUser" parameterClass="int">

      delete from t_user where id=#id#

     </delete>

    </sqlMap>

    5、創建測試程序測試:

    package com.crm.model;

    import java.io.Reader;

    import java.util.Iterator;

    import java.util.List;

    import com.ibatis.common.resources.Resources;

    import com.ibatis.sqlmap.client.SqlMapClient;

    import com.ibatis.sqlmap.client.SqlMapClientBuilder;

    /**

     *最簡單的形式!

     *@authorq

     *

     */

    publicclass UserTest {

        /**

         *@paramargs

         */

        publicstaticvoid main(String[] args) throws Exception{

           //從配置文件中得到SqlMapClient對象

           Reader reader = Resources.getResourceAsReader("sqlMapConfig.xml");

           SqlMapClient sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);

           reader.close();

          

           //創建用戶數據

           for(int i=0; i<10; i++){

               User user = new User();

               user.setUsername("用戶"+i);

               user.setPassword("密碼"+i);

               sqlMapper.insert("insertUser", user);

           }

          

           //查詢用戶數據

           List users = sqlMapper.queryForList("selectAllUsers");

           for (Iterator iter = users.iterator(); iter.hasNext();) {

               User user = (User) iter.next();

               System.out.println(user.getUsername());

           }

          

           //查詢特定用戶的數據

           User user = (User)sqlMapper.queryForObject("selectUser", 1);

           System.out.println("用戶【id="+1+"】的名稱是"+user.getUsername());

          

           //更新用戶的信息

           user = new User();

           user.setId(3);

           user.setUsername("更改之后的用戶名稱");

           user.setPassword("密碼被更改");

           sqlMapper.update("updateUser", user);

          

           //刪除用戶的信息

           sqlMapper.delete("deleteUser", 6);

        }

    }

     


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产好大好硬好爽免费不卡| 亚洲AV无码码潮喷在线观看| 亚洲va在线va天堂成人| 无码囯产精品一区二区免费| 亚洲AV无码久久精品蜜桃| 精品四虎免费观看国产高清午夜| 国产V亚洲V天堂无码久久久| 成人性生交大片免费看好| 久久精品国产精品亚洲精品| 久久国产免费一区二区三区 | 亚洲日韩AV一区二区三区四区| 99re6免费视频| 亚洲国产美女福利直播秀一区二区 | 处破痛哭A√18成年片免费| 亚洲日韩精品无码专区加勒比 | 成人妇女免费播放久久久| 亚洲精品自在在线观看| 无码人妻精品中文字幕免费| 亚洲无线电影官网| 影音先锋在线免费观看| 色屁屁www影院免费观看视频| 全部免费a级毛片| 最近免费mv在线观看动漫| 亚洲福利视频一区二区三区| 最近中文字幕mv免费高清视频7| 国产亚洲精品成人久久网站| 亚洲精品国产美女久久久| 四虎最新永久免费视频| 麻豆亚洲AV成人无码久久精品| 亚洲最大av无码网址| 日本一卡精品视频免费| 亚洲日韩精品国产一区二区三区| 亚洲男人在线无码视频| 未满十八18禁止免费无码网站| 亚洲性色精品一区二区在线| 亚洲性在线看高清h片| 在线免费观看亚洲| 黄色一级视频免费| 亚洲综合激情九月婷婷 | 1000部免费啪啪十八未年禁止观看| 亚洲人成综合网站7777香蕉|