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

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

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

    [轉]ibatis初步

    ?自: http://dev.csdn.net/article/79/79164.shtm

    <!--[if !supportLists]-->1.?? <!--[endif]-->總體描述

    Eclipse為例說明ibatis用法,數據庫為MS SQL2000,ibatis版本為2.0, jDK1.5, 以對一個用戶信息表 user_info的插入、查詢(單條記錄),多記錄查詢為例說明itatis的用法。
    ????
    說明:

    ???? 本文適合初次接觸ibatis的讀者。
    ???? 文章中如有不妥之處,歡迎指正。
    ???? 如國引用,請說明出處,謝謝。

    <!--[if !supportLists]-->2.?? <!--[endif]-->準備工作

    <!--[if !supportLists]-->1.?????? <!--[endif]-->安裝Eclipse 3.0.1

    <!--[if !supportLists]-->2.?????? <!--[endif]-->安裝jdk1.5

    <!--[if !supportLists]-->3.?????? <!--[endif]-->下載 ibatis 2.0 開發包? www.ibatis.com

    <!--[if !supportLists]-->4.?????? <!--[endif]-->下載MS SQL JDBC驅動包, MSJDBC3.0 SP3

    <!--[if !supportLists]-->5.?????? <!--[endif]-->下載日志操作包 commons-logging.jar

    <!--[if !supportLists]-->3.?? <!--[endif]-->開發步驟

    <!--[if !supportLists]-->1.?????? <!--[endif]-->新建J2EE工程 test

    <!--[if !supportLists]-->2.?????? <!--[endif]-->test下建立包 cjs

    <!--[if !supportLists]-->3.?????? <!--[endif]-->建立文件夾 sqlmap

    <!--[if !supportLists]-->4.?????? <!--[endif]-->建立文件夾 sqlmap.map

    <!--[if !supportLists]-->5.?????? <!--[endif]-->sqlmap.map 下建立三個文件:

    SqlMapConfigExample.properties

    sql-map-config.xml

    user.xml

    ?

    文件內容如下:

    ?

    SqlMapConfigExample.properties

    -----------------------------------------------------------------------------------------------------------

    ?

    driver=com.microsoft.jdbc.sqlserver.SQLServerDriver

    url=jdbc:microsoft:sqlserver://localhost:1433;

    DatabaseName=java

    username=sa

    password=tn

    -----------------------------------------------------------------------------------------------------------

    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>

    ?

    ?? <properties

    ??? resource="sqlmap/map/SqlMapConfigExample.properties" />

    ?

    ?? <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="${driver}"/>

    ???? <property name="JDBC.ConnectionURL" value="${url}"/>

    ???? <property name="JDBC.Username" value="${username}"/>

    ???? <property name="JDBC.Password" value="${password}"/>

    ??? </dataSource>

    ?? </transactionManager>

    ?

    ????

    ?? <sqlMap resource="sqlmap/map/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">

    ??? <select id="getUser" parameterClass="java.lang.Integer"

    ??????? resultClass="cjs.User">

    ??????? SELECT * FROM user_info WHERE uid=#uid#

    ? ??</select>

    ??? <select id="getAllUser" resultClass="cjs.User">

    ??? select

    ????? ????? * from user_info

    ??? where name = #value#

    ? ? </select>

    ?

    ? ? <insert id="insertUser" parameterClass="cjs.User">

    ????? ?? INSERT INTO

    ???????????? user_info(name, sex, age, addr, zipcode)

    ????? ?? VALUES (#name#, #sex#, #age#, #addr#, #zipcode#)

    ? ? </insert>

    </sqlMap>

    -----------------------------------------------------------------------------------------------------

    ?

    <!--[if !supportLists]-->6.?????? <!--[endif]-->test上右鍵,點擊導入,將

    commonslogging.jar

    ibatis-common-2.jar

    ibatis-dao-2.jar

    ibatis-sqlmap-2.jar

    msbase.jar

    mssqlserver.jar

    msutil.jar

    導入到Lib文件夾中

    <!--[if !supportLists]-->7.?????? <!--[endif]-->在項目-》屬性-》構建路徑中添加外部 jar的引用,也就是上面幾個 jar

    <!--[if !supportLists]-->8.?????? <!--[endif]-->建立一個數據庫 java,并執行下面腳本

    Table.sql

    -----------------------------------------------------------------------------------------------------

    CREATETABLE user_info

    (

    ? uid intidentity(1,1) primarykey,

    ? namevarchar(20),

    ? sex int,

    ? ageint,

    ? addr varchar(50),

    ? zipcode varchar(6),

    );

    -----------------------------------------------------------------------------------------------------

    ?

    <!--[if !supportLists]-->9.?????? <!--[endif]-->cjs包下面編寫類

    Myapp.java

    Operates.java

    User.java

    ?

    內容如下:

    Myapp.java

    -----------------------------------------------------------------------------------------------------------

    /*

    ?* 創建日期2005-10-26

    ?*

    ?* TODO 要更改此生成的文件的模板,請轉至

    ?* 窗口首選項 Java 代碼樣式代碼模板

    ?*/

    ?

    /**

    ?* @author Administrator

    ?*

    ?* TODO 要更改此生成的類型注釋的模板,請轉至

    ?* 窗口首選項 Java 代碼樣式代碼模板

    ?*/

    package cjs;

    import java.io.Reader;

    ?

    import com.ibatis.common.resources.Resources;

    import com.ibatis.sqlmap.client.SqlMapClient;

    import com.ibatis.sqlmap.client.SqlMapClientBuilder;

    ?

    ?

    public class Myapp {

    ??? private static final SqlMapClient sqlMap;

    ??? static {

    ??????? try {

    ??????????? String resource = "sqlmap/map/sql-map-config.xml";

    ??????????? Reader reader = Resources.getResourceAsReader (resource);

    ??????????? sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);

    ??????? }

    ??????? catch (Exception e) {

    ???????? e.printStackTrace();???

    ??????? throw new RuntimeException ("Error initializing MyApp class. Cause:"+e);

    ??????? }

    ??? }

    ??? public static SqlMapClient getSqlMapInstance () {

    ??????? return sqlMap;

    ??? }

    }

    -----------------------------------------------------------------------------------------------------------

    ?

    ?

    Operates.java

    -----------------------------------------------------------------------------------------------------------

    /*

    ?* 創建日期2005-10-26

    ?*

    ?* TODO 要更改此生成的文件的模板,請轉至

    ?* 窗口首選項 Java 代碼樣式代碼模板

    ?*/

    ?

    /**

    ?* @author Administrator

    ?*

    ?* TODO 要更改此生成的類型注釋的模板,請轉至

    ?* 窗口首選項 Java 代碼樣式代碼模板

    ?*/

    ?

    package cjs;

    import cjs.User;

    import java.util.Iterator;

    import java.util.List;

    ?

    import com.ibatis.sqlmap.client.SqlMapClient;

    ?

    public class Operates {

    private static void insertData(User newUser){

    ??????? SqlMapClient sqlMap = Myapp.getSqlMapInstance();

    ??????? try{

    ?????????? Integer uid= new Integer(1);

    ??????? //?? User user = (User) sqlMap.queryForObject ("getUser", uid);

    ??????

    ?????????? System.out.println("Use ibatis to Insert a new User:");

    ?????????? /*

    ?????????? System.out.println("Uid = " + "系統自動產生");

    ?????????? System.out.println("name =" + newUser.getName());

    ?????????? System.out.println("setSex =" + newUser.getSex());

    ?????????? System.out.println("setAge = " + newUser.getAge());

    ?????????? System.out.println("setAddr = " + newUser.getAddr());

    ?????????? System.out.println("setZipcode = " + newUser.getZipcode());

    ?????????? */

    ?????????? System.out.println(newUser.toString());

    ?????????? sqlMap.insert ("insertUser", newUser);

    ?????????? System.out.println("Insert success!");

    ??????????

    ?? ?????}

    ??????? catch(Exception e){

    ?????????????? e.printStackTrace();

    ??????? }

    }

    private static User query(Integer uid){

    ??????? User myuser = new User();

    ???????

    ??????? SqlMapClient sqlMap = Myapp.getSqlMapInstance();

    ??????? try{

    ?????????????? myuser = (User)sqlMap.queryForObject ("getUser", uid);

    ??????? }catch(Exception e){

    ?????????????? e.printStackTrace();

    ??????? }finally{

    ?????????????? return myuser;

    ??????? }

    }

    private static void queryList(String name){

    ??????? try{

    ?????????????? SqlMapClient sqlMap = Myapp.getSqlMapInstance();

    ?????????????? List userList = sqlMap.queryForList("getAllUser",name);

    ?????????????? if(userList!=null && !userList.isEmpty()){

    ????????????????????? User tmpUser = new User();

    ????????????????????? System.out.println("There are " + userList.size()+ " rows records"

    ??????????????????????????????????? + " whose name is " + name + ":" );

    ????????????????????? for(Iterator iter = userList.iterator(); iter.hasNext();){

    ???????????????????????????? tmpUser = (User)iter.next();

    ???????????????????????????? System.out.println(tmpUser.toString());

    ????????????????????? }

    ?????????????? }else{

    ????????????????????? System.out.println("There is 0 row record whose name is: " + name);

    ?????????????? }

    ??????? }catch(Exception e){

    ?????????????? e.printStackTrace();

    ??????? }

    }

    ??? public static void main(String[] args) {

    ??????? User newUser= new User();

    ??????? //newUser.setUid(6);

    ??????? newUser.setName("cjs");

    ??????? newUser.setSex(2);

    ??????? newUser.setAge(2);

    ??????

    ??????? newUser.setAddr("dfghg");

    ??????? newUser.setZipcode("301");

    ???????

    ??????? // insert

    ??????? //insertData(newUser);

    ???????

    ??????? // query a object

    ??????? /*

    ??????? Integer uid= new Integer(5);

    ??????? User getUser = query(uid);

    ??????? System.out.println("Query User whose id equal " + uid + ":");

    ??????? System.out.println(getUser.toString());

    ??????? */

    ???????

    ??????? // query many objects

    ??????? String name = "cjs";

    ??????? queryList(name);

    ??

    ??? }

    }

    -----------------------------------------------------------------------------------------------------------

    ?

    User.java

    -----------------------------------------------------------------------------------------------------------

    ?

    package cjs;

    /*

    ?* 創建日期2005-10-26

    ?*

    ?* TODO 要更改此生成的文件的模板,請轉至

    ?* 窗口首選項 Java 代碼樣式代碼模板

    ?*/

    ?

    /**

    ?* @author Administrator

    ?*

    ?* TODO 要更改此生成的類型注釋的模板,請轉至

    ?* 窗口首選項 Java 代碼樣式代碼模板

    ?*/

    public class User {

    ??? public int uid;

    ??? public String name;

    ??? public int sex;

    ??? public int age;

    ??? public String addr;

    ??? public String zipcode;??

    ?

    ??? public String getAddr() {

    ??????? return addr;

    ??? }

    ??? public void setAddr(String addr) {

    ??????? this.addr = addr;

    ??? }

    ??? 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 int getSex() {

    ??????? return sex;

    ??? }

    ??? public void setSex(int sex) {

    ??????? this.sex = sex;

    ??? }

    ??? public int getUid() {

    ??????? return uid;

    ??? }

    ? ??public void setUid(int uid) {

    ??????? this.uid = uid;

    ??? }

    ??? public String getZipcode() {

    ??????? return zipcode;

    ??? }

    ??? public void setZipcode(String zipcode) {

    ??????? this.zipcode = zipcode;

    ??? }

    ???

    ??? public String toString(){

    ??? String szUser = new String();

    ??? szUser += "Uid = " + uid + "; ";

    ??? szUser += "name =" + name + "; ";

    ??????? szUser += "setSex =" + sex + "; ";

    ??????? szUser += "setAge = " + age+ "; ";

    ??????? szUser += "setAddr = " + addr+ "; ";

    ??????? szUser += "setZipcode = " + zipcode+ "; ";

    ??????? return szUser;

    ??? }

    }

    -----------------------------------------------------------------------------------------------------------

    ?

    <!--[if !supportLists]-->4.?? <!--[endif]-->運行

    通過Operates.java 中的main() 來調試各種情況,包括插入數據,查詢一條數據,查詢多條數據。

    <!--[if !supportLists]-->5.?? <!--[endif]-->注意

    <!--[if !supportLists]-->1.????????????? <!--[endif]-->連接不同的數據庫,通過修改SqlMapConfigExample.properties 中的 driverURL就可以了。

    <!--[if !supportLists]-->2.????????????? <!--[endif]-->注意sql-map-config.xml 的路徑

    <!--[if !supportLists]-->3.????????????? <!--[endif]-->參數中為Integer時,最好指定為 java.Lang.Integer,如果為字符串,則可以不指定

    <!--[if !supportLists]-->4.????????????? <!--[endif]-->注意返回結果類型的指定

    <!--[if !supportLists]-->5.????????????? <!--[endif]-->注意插入語句中,sql語句中的變量為類的屬性值。

    ?

    posted on 2006-03-20 16:46 扭轉乾坤 閱讀(329) 評論(0)  編輯  收藏 所屬分類: 數據庫

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(2)

    隨筆分類(31)

    隨筆檔案(30)

    文章分類(32)

    文章檔案(33)

    相冊

    PHP小站-首頁

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久国产一片免费观看| 国产极品粉嫩泬免费观看| 精品久久久久久亚洲综合网| 2022中文字字幕久亚洲| 最近中文字幕免费mv在线视频| 亚洲videosbestsex日本| 免费国产成人午夜私人影视| 7m凹凸精品分类大全免费| 成人在线免费视频| 亚洲黄色在线观看网站| 亚洲国产精品嫩草影院久久| 91免费资源网站入口| 中文在线日本免费永久18近| 亚洲欧美日韩中文字幕一区二区三区| 国产午夜亚洲不卡| 国产男女猛烈无遮挡免费网站 | 最近免费mv在线观看动漫| 亚洲国产成人久久精品大牛影视 | 久久久受www免费人成| 亚洲av无码专区亚洲av不卡| 亚洲一区电影在线观看| 亚洲电影国产一区| 亚洲AV午夜福利精品一区二区 | 亚洲精品福利网站| 伊人久久综在合线亚洲2019| 国产亚洲一区二区三区在线| 精品国产亚洲一区二区在线观看 | 老湿机一区午夜精品免费福利| 亚洲欧洲免费无码| 亚洲色偷偷综合亚洲AV伊人蜜桃 | 国产免费网站看v片在线| 国产一级一毛免费黄片| 国产高清视频免费在线观看| 一级片在线免费看| 国产精品综合专区中文字幕免费播放| 免费福利在线观看| 新最免费影视大全在线播放| 国产精品免费大片一区二区| 国产精品免费视频观看拍拍| 国产自国产自愉自愉免费24区| 国产成人精品一区二区三区免费|