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

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

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

    posts - 297,  comments - 1618,  trackbacks - 0
          原文出處:http://blog.csdn.net/tenwang1977/archive/2004/08/17/76972.aspx
        

    本文章將從一個Ibatis的具體示例,幫助你快速了解IBatis框架。

    一個簡單的IBatis應用包含以下基本步驟:

    一、 配置文件
    1. 配置SqlMapConfig.properties文件

    2. 配置SqlMapConfig.xml文件

    3. 配置SqlMap.xml文件(可能有多個文件,一般情況下,可以一個表對應一個SqlMap.xml文件,文件名稱可以與表名相同)

    注意:上面所述的SqlMapConfig.xml文件必須在類路徑中,SqlMapConfig.properties和SqlMap.xml文件可以在類路徑中,也可以不在類路徑中。當SqlMapConfig.properties和SqlMap.xml文件不在類路徑中的時候,配置也不同,在本文中,這三個文件都放在類路徑中。

    二、 程序調用
    1. 初始化SqlMapClient對象。

    2. 運行Sql語句:你可以調用SqlMapClient對象的queryfor...()、insert()、update()、delete()來分別執行select、insert、update和delete操作。

    好了,下面我們結合實例進行講解:
    三、實例:

    下面的例子是以mysql為例進行說明,建立了一個author表,為了方便調試代碼,你可以將ibatis-common-2.jar、ibatis-dao-2.jar、ibatis-sqlmap-2.jar和lib目錄下的所有的jar都加載到你的程序中,在后續的文章中,將會說明每個Jar的用途。

    (一) 創建數據庫和表
    創建一個名字為IBatisExample的數據庫
    CREATE TABLE author (
      auth_id int(8) NOT NULL auto_increment,
      auth_name varchar(100) NOT NULL default '',
      auth_age int(3) NOT NULL default '0',
      auth_tel varchar(100) NOT NULL default '',
      auth_address varchar(100) NOT NULL default '',
      PRIMARY KEY  (auth_id)
    ) TYPE=MyISAM;
    INSERT INTO author VALUES (1, '作者一', 30, '025-12345678', '南京');
    INSERT INTO author VALUES (2, '作者二', 30, '025-12345678', '南京');

    (二) 配置文件

    1. 配置SqlMapConfig.properties文件
    文件內容:
    driver=org.gjt.mm.mysql.Driver
    url=jdbc:mysql://192.168.0.26:3306/IBatisExample?useUnicode=true&characterEncoding=GB2312
    username=root
    password=123456

    2. 配置SqlMapConfig.xml文件
    文件內容:
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE sqlMapConfig
    PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
    " <!-- Always ensure to use the correct XML header as above! -->
    <sqlMapConfig>
    <!-- The properties (name=value) in the file specified here can be used placeholders in this config
    file (e.g. “${driver}”. The file is relative to the classpath and is completely optional. -->
    <properties resource="SqlMapConfig.properties" />
    <!-- These settings control SqlMapClient configuration details, primarily to do with transaction
    management. They are all optional (more detail later in this document). -->
    <settings
    cacheModelsEnabled="true"
    enhancementEnabled="true"
    lazyLoadingEnabled="true"
    maxRequests="32"
    maxSessions="10"
    maxTransactions="5"
    useStatementNamespaces="false"
    />

    <!-- Configure a datasource to use with this SQL Map using SimpleDataSource.
    Notice the use of the properties from the above resource -->
    <transactionManager type="JDBC" >
    <dataSource type="SIMPLE">
    <property name="JDBC.Driver" value="${driver}"/>
    <property name="JDBC.ConnectionURL" value="${url}"/>
    <property name="JDBC.Username" value="${username}"/>
    <property name="JDBC.Password" value="${password}"/>
    <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 author"/>
    <property name="Pool.PingEnabled" value="false"/>
    <property name="Pool.PingConnectionsOlderThan" value="1"/>
    <property name="Pool.PingConnectionsNotUsedFor" value="1"/>
    </dataSource>
    </transactionManager>
    <!-- Identify all SQL Map XML files to be loaded by this SQL map. Notice the paths
    are relative to the classpath. For now, we only have one… -->
    <sqlMap resource="com/ibatis/sqlmap/author.xml" />
    </sqlMapConfig>

    3. 配置SqlMap.xml文件
    這里我們命名為author.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE sqlMap
    PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
    "
    <sqlMap namespace="Author">
    <typeAlias alias="Author" type="com.ibatis.beans.Author" />

    <select id="getAuthor" parameterClass="int" resultClass="Author">
     SELECT auth_id as id,auth_name as name,auth_age as age,auth_tel as telephone,auth_address as address FROM author WHERE auth_id = #id#
    </select>

    <statement id="getAllAuthor" resultMap="authorResult">
     SELECT * FROM author
    </statement>

    <insert id="insertAuthor" parameterMap="authorParameter">
     INSERT INTO author (auth_name,auth_age,auth_tel,auth_address) VALUES (?,?,?,?)
    </insert>

    <update id="updateAuthor" parameterClass="Author">
     UPDATE author set auth_name=#name# WHERE auth_id = #id#
    </update>

    <delete id="deleteAuthor" parameterClass="int">
     delete from author WHERE auth_id = #id#
    </delete>

    </sqlMap>

    (三) 程序調用
    由于源代碼很長,所以這里我只給出一些簡單的程序調用方法,所以如果有人想要源代碼的話,可以留下你的郵箱。
    1. 初始化一個SqlMapClient對象,代碼如下:
    public class SqlMapConf
    {
        private static SqlMapClient sqlMapClient;
        static
     {
      try
      {
          System.out.println("sqlMapClient initing.....");
       String resource = "SqlMapConfig.xml";
       Reader reader = Resources.getResourceAsReader (resource);
       sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
      }
      catch (Exception e)
      {
       e.printStackTrace();
       throw new RuntimeException ("Error initializing MyAppSqlConfig class. Cause: " +e);
      }
     }
        public static SqlMapClient getInstance()
        {
            return sqlMapClient;
        } 
    }

    2. 然后要為Author表寫一個bean,代碼如下:
    public class Author
    {
        private int id;
        private int age;
        private String name;  
        private String address;
        private String telephone;
       
        public int getId()
        {
            return id;
        }
        public void setId(int id)
        {
            this.id=id;
        }
        public int getAge()
        {
            return age;
        }
        public void setAge(int age)
        {
            this.age=age;
        }
        public String getName()
        {
            return name;
        }
        public void setName(String name)
        {
            this.name=name;
        }
       
        public String getAddress()
        {
            return address;
        }
        public void setAddress(String address)
        {
            this.address=address;
        }
        public String getTelephone()
        {
            return telephone;
        }
        public void setTelephone(String telephone)
        {
            this.telephone=telephone;
        }
    }

    3. 程序調用:
    這里將只示范一下getAuthor、insertAuthor1、updateAuthor和deleteAuthor的方法。
    首先應該得到一個SqlMapClient實例:
    SqlMapClient sqlMapClient = SqlMapConf.getInstance();

    (1) getAuthor:
     Author author = (Author)sqlMapClient.queryForObject("getAuthor", new Integer(1));
    (2) getAllAuthor
     List authorList = (List)sqlMapClient.queryForList("getAllAuthor", null);
    (3) insertAuthor:
     Author author = new Author();
     author.setName("作者三");
     author.setAge(31);
     author.setAddress("南京");
     author.setTelephone("025-987654321");
     sqlMapClient.insert(operaName, author);
    (4) updateAuthor
     Author author = new Author();
     author.setName("Updated");
     author.setId(authorID);
     sqlMapClient.update(operaName, author);       
    (5) deleteAuthor
     sqlMapClient.delete("deleteAuthor", new Integer(authorID));

    這里只是做一個簡單的例子,希望能夠幫助快速的入門,而并沒有對IBatis的原理進行剖析,不過通過這幾個調用,我想你可能能夠猜到IBatis的一部分運作原理了,關于IBatis的原理以及高級應用,請關注后續文章。



    FeedBack:
    # re: [轉載]Ibatis2.0使用說明(一)——入門實例篇
    2007-10-24 21:46 | 青菜貓(孫宇)
    這個我也用了,感覺可以,的,不知道你對多表查詢,更新有什么建議..  回復  更多評論
      
    # re: [轉載]Ibatis2.0使用說明(一)——入門實例篇
    2007-10-27 19:26 | tanlei
    女程序員!稀罕!頂一個!  回復  更多評論
      
    # re: [轉載]Ibatis2.0使用說明(一)——入門實例篇
    2008-05-12 10:58 | 開機
    (1)String resource = "SqlMapConfig.xml";
    Reader reader = Resources.getResourceAsReader (resource);
    sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
    中:
    為什么不直接用 sqlMapClient = SqlMapClientBuilder.buildSqlMapClient("SqlMapConfig.xml");
    (2)像SqlMapConfig.xml,author.xml,author bean這樣的要是可以根據數據生成就好了,就像hibernate那樣,以后再根據需要改。因為這樣東東本身就是重復性的工作。不知道有沒有這樣的插件?  回復  更多評論
      
    <2007年10月>
    30123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

          生活將我們磨圓,是為了讓我們滾得更遠——“圓”來如此。
          我的作品:
          玩轉Axure RP  (2015年12月出版)
          

          Power Designer系統分析與建模實戰  (2015年7月出版)
          
         Struts2+Hibernate3+Spring2   (2010年5月出版)
         

    留言簿(263)

    隨筆分類

    隨筆檔案

    文章分類

    相冊

    關注blog

    積分與排名

    • 積分 - 2294312
    • 排名 - 3

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日本特黄特色AAA大片免费| aⅴ在线免费观看| 在线日韩av永久免费观看| 亚洲天天在线日亚洲洲精| 无遮挡国产高潮视频免费观看| 黄网站色在线视频免费观看| 国产亚洲综合一区柠檬导航| 国产av无码专区亚洲av毛片搜| 97视频免费在线| 久久亚洲精品成人综合| 国产A∨免费精品视频| 日本xxwwxxww在线视频免费| 亚洲av无码专区在线| 91大神免费观看| 久久精品国产精品亚洲艾| 国产精品成人免费观看| 免费乱码中文字幕网站| 亚洲美国产亚洲AV| 亚洲高清中文字幕免费| 亚洲专区先锋影音| 日本免费在线观看| 国产亚洲3p无码一区二区| 一出一进一爽一粗一大视频免费的| 国产精品公开免费视频| 亚洲欧美日韩一区二区三区在线| 国产h视频在线观看网站免费| 亚洲国产精品lv| 久操免费在线观看| 精品久久久久久亚洲| 羞羞视频免费网站日本| 日韩精品电影一区亚洲| 久久精品亚洲日本波多野结衣| 国产精品成人免费一区二区| 亚洲中文无码av永久| 在线永久免费的视频草莓| 亚洲嫩草影院在线观看| 国产精彩免费视频| 亚洲一区中文字幕| 亚洲第一成年免费网站| 成人亚洲国产va天堂| 在线观看免费毛片|