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

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

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

    duansky'weblog

    統計

    留言簿(3)

    友情鏈接

    閱讀排行榜

    評論排行榜

    iBatis簡明教程及快速入門

    Batis是又一個O/R Mapping解決方案,j2ee的O/R方案真是多,和Hibernate相比,iBatis最大的特點就是小巧,上手很快。如果你不需要太多復雜的功能,iBatis是能滿足你的要求又足夠靈活的最簡單的解決方案。

    iBatis最大的特點是簡單,最新版本2.0(下載),和1.0相比,主要改動在XML配置文件上,不過,只要有SQL基礎,相信你不用教程也能看明白。下面我們看一個最簡單的例子入門。

    我們先建一個表Account,包括字段username,?varchar(20), pk和password, varchar(20),隨便填入一些數據。然后編寫iBatis必須的配置文件sql-map-config.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="sun.jdbc.odbc.JdbcOdbcDriver"/>
    ??????
    <property?name="JDBC.ConnectionURL"?value="jdbc:odbc:Blog"/>
    ??????
    <property?name="JDBC.Username"?value="admin"/>
    ??????
    <property?name="JDBC.Password"?value=""/>
    ????
    </dataSource>
    ??
    </transactionManager>
    ??
    <sqlMap?resource="Account.xml"?/>
    </sqlMapConfig>
    其他部分你不用管它,我是直接copy的示例配置,只需注意紅色部分,配置好數據源即可。我用的是Access,所以用JdbcOdbc驅動。如果你用MySQL或其他數據庫,更改相應的屬性。

    然后注意到這個配置文件還引用了一個Account.xml,沒錯,iBatis把每個需要O/R Mapping的Java對象關聯到一個xml配置文件,我們需要把一個Account表映射到一個Account類:
    package?example;
    public?class?Account?{
    ????
    private?String?username;
    ????
    private?String?password;

    ????
    public?String?getUsername()?{?return?username;?}
    ????
    public?void?setUsername(String?username)?{?this.username=username;?}

    ????
    public?String?getPassword()?{?return?password;?}
    ????
    public?void?setPassword(String?password)?{?this.password=password;?}
    }

    編寫Account.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="Account">

    ??
    <select?id="getAccount"?parameterClass="java.lang.String"?resultClass="example.Account">
    ????select?*?from?Account?where?username?=?#value#
    ??
    </select>

    ??
    <insert?id="createAccount"?parameterClass="example.Account">
    ????insert?into?Account?(username,?password)
    ????values?(?#username#,?#password#?)
    ??
    </insert>
    </sqlMap>
    我 們主要關心紅色部分。以<select ...>為例,這里定義了一個查詢方法,名字為getAccount,傳入參數為String,返回類型resultClass就是 example.Account類,select語句相信你已經很熟悉了,#value#是我們將要傳進去的String。

    <insert... >與之類似,不過注意到#username#和#password#,由于參數是Account類,它們將被 Account.getUsername()和Account.getPassword()替換。所以,只要你會寫SQL,就能非常容易地寫出配置文件。

    最后便是如何使用iBatis實現O/R映射。首先初始化iBatis獲得一個SqlMapClient對象:
    com.ibatis.sqlmap.client.SqlMapClient?sqlMap?=?null;
    ????
    try?{
    ????????java.io.Reader?reader?
    =?om.ibatis.common.resources.Resources.getResourceAsReader?("sql-map-config.xml");
    ????????sqlMap?
    =?SqlMapClientBuilder.buildSqlMapClient(reader);
    ????}
    ?catch?(Exception?e)?{
    ????????e.printStackTrace();
    ????}

    然后就可以異常方便地使用O/R Mapping了,比如查詢username=admin的Account:
    try?{
    ????????Account?accout?
    =?(Account)sqlMap.queryForObject("getAccount",?"admin");
    ????????
    ????}

    或者創建一個新的Account:
    try?{
    ????????Account?account?
    =?new?Account();
    ????????account.setUsername(
    "micheal");
    ????????account.setPassword(
    "1234");
    ????????sqlMap.insert(
    "createAccount",?account);
    ????}

    運行時把兩個配置文件和iBatis的3個jar包放到classpath中,要求jdk1.4版本。

    總 結:iBatis確實簡單靈活,上手容易,代碼很少,配置稍嫌復雜。不足之處一是沒有方便的工具來自動生成xml配置文件,二是不管是query還是 insert都只能傳入一個參數,有時不得不把兩個參數包裝成一個類傳進去。另外對常見的1:1,1:N關系的支持不如Hibernate。不過,大多數 時候iBatis已經完全可以滿足我們的需求。Spring很好的集成了iBatis,你可以參考Spring的JPetStore示例。需要注意的是使 用iBatis 2.0和1.0有較大區別,主要體現在配置文件上,iBatis 2.0新增了DAO框架,不需要Spring提供的DAO也能很方便地實現DAO模式。?

    轉自: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1740022

    posted on 2007-11-07 14:49 duansky 閱讀(519) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 亚洲AⅤ视频一区二区三区| 国产无遮挡吃胸膜奶免费看视频| 国产亚洲精品福利在线无卡一| 亚洲AV无码片一区二区三区 | 色噜噜狠狠色综合免费视频| 免费黄色网址入口| 亚洲av成人一区二区三区在线播放| 日韩成全视频观看免费观看高清| 亚洲乱码无人区卡1卡2卡3| 在线免费一区二区| 亚洲av永久中文无码精品综合| 国产精品深夜福利免费观看 | 国产91色综合久久免费| 亚洲激情视频图片| 在线jlzzjlzz免费播放| 看免费毛片天天看| 亚洲伊人久久综合影院| 日批视频网址免费观看| 亚洲电影中文字幕| 一二三四在线播放免费观看中文版视频 | 四虎影院免费在线播放| 风间由美在线亚洲一区| 亚洲无码黄色网址| 免费国产午夜高清在线视频| 亚洲高清在线观看| 国产精品美女午夜爽爽爽免费| 亚洲狠狠婷婷综合久久| 久久久久久A亚洲欧洲AV冫| 午夜免费福利小电影| 亚洲色欲啪啪久久WWW综合网| 伊人久久亚洲综合影院| 国产免费爽爽视频在线观看| 亚洲国产av一区二区三区丶| 日韩免费无砖专区2020狼| 国产免费播放一区二区| 亚洲人成黄网在线观看| 亚洲AⅤ无码一区二区三区在线| 99热这里只有精品6免费| 无码亚洲成a人在线观看| 亚洲精选在线观看| 免费日本黄色网址|