<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);

        }

    }

     


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲无mate20pro麻豆| 午夜无码A级毛片免费视频| 精品国产免费人成网站| 波多野结衣免费在线| 亚洲国产电影av在线网址| 91亚洲视频在线观看| 两个人看的www免费视频中文| 久久久国产精品亚洲一区| 色哟哟国产精品免费观看| 全部免费a级毛片| 亚洲jizzjizz少妇| 嫩草在线视频www免费观看| 亚洲大尺度无码专区尤物| 黄网站色视频免费看无下截| 免费看a级黄色片| 亚洲va在线va天堂成人| 国产一卡二卡四卡免费| 亚洲宅男天堂a在线| 99精品一区二区免费视频| 亚洲乱码精品久久久久..| 免费国产黄网站在线观看动图| 国产伦一区二区三区免费 | 国产亚洲精品资在线| 日本在线观看免费高清| 亚洲AV无码成H人在线观看| 免费人成又黄又爽的视频在线电影 | 亚洲精品在线免费看| 在线播放免费人成毛片乱码| 精品久久洲久久久久护士免费| 亚洲av永久无码精品三区在线4 | 无码乱人伦一区二区亚洲| 亚洲精品视频免费观看| MM131亚洲国产美女久久| 亚洲精品黄色视频在线观看免费资源 | 午夜一级毛片免费视频| 亚洲综合色7777情网站777| 四虎在线免费视频| 日韩欧美亚洲国产精品字幕久久久| 在线观着免费观看国产黄| 四虎精品免费永久免费视频| 免费真实播放国产乱子伦|