iBatis 2入門執行個體

來源:互聯網
上載者:User

看了《iBatis in Action》,寫一個簡單ibatis 2 應用執行個體

我學什麼架構都是喜歡從簡單的java程式開始,不急忙去整合。現在就用簡單的java project來說。

1. 完成本實驗,首先需要得到一個ibatis的jar包,我這裡用的是ibatis-2.3.0.677.jar,由於本實驗需要串連Mysql資料庫,所以還要有mysql的驅動包,我這裡用的是mysql-connector-java-5.0.5.jar。

下面將要用到的mysql資料庫:

## Table structure for table 'user_account'#DROP TABLE USER_ACCOUNT;CREATE TABLE USER_ACCOUNT (USERID INT(3) NOT NULL AUTO_INCREMENT,USERNAME VARCHAR(10) NOT NULL,PASSWORD VARCHAR(30) NOT NULL,GROUPNAME VARCHAR(10),PRIMARY KEY (USERID));## Data for table 'user_account'#INSERT INTO USER_ACCOUNT (USERNAME, PASSWORD, GROUPNAME) VALUES ('admin', 'admin', 'admin');INSERT INTO USER_ACCOUNT (USERNAME, PASSWORD, GROUPNAME) VALUES ('ALEX', 'PICKLE', 'EMPLOYEE');INSERT INTO USER_ACCOUNT (USERNAME, PASSWORD, GROUPNAME) VALUES ('JDOE', 'TEST', 'EMPLOYEE');INSERT INTO USER_ACCOUNT (USERNAME, PASSWORD, GROUPNAME) VALUES ('Leon', '1234', 'EMPLOYEE');INSERT INTO USER_ACCOUNT (USERNAME, PASSWORD, GROUPNAME) VALUES ('Mike', '1234', 'EMPLOYEE');COMMIT;

 2. Eclipse下,建立Java Project,匯入上面的兩個jar包,現在工程中只有src一個源檔案夾,為了後面好看,添加一個源檔案夾resource。

3. 在resource源檔案夾下建立3個檔案

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><properties resource="ibatis-mysql.properties" /><typeAlias alias="user" type="leon.ibatis.User" /><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.xml" /></sqlMapConfig>

ibatis-mysql.properties:

#mysql connectiondriver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/test1username=rootpassword=leonsu

SqlMap.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><select id="getAllUsers" parameterClass="string" resultClass="user">SELECT USERID,USERNAME,PASSWORD,GROUPNAME FROM USER_ACCOUNT WHERE GROUPNAME = #groupName#</select><select id="getUserById" parameterClass="integer" resultClass="user">SELECT USERID,USERNAME,PASSWORD,GROUPNAME FROM USER_ACCOUNT WHERE USERID = #id#</select></sqlMap>

說明:

這樣的配置下,如果你的電腦沒有連網,那麼運行可能出錯,因為SqlMapConfig.xml和SqlMap.xml的DOCTYPE定義的dtd檔案是連網獲得的,如果沒連網可能會報錯。

如果非要在斷網的情況下運行本實驗,可以先把http://ibatis.apache.org/dtd/sql-map-config-2.dtd 和http://ibatis.apache.org/dtd/sql-map-2.dtd 下載下來儲存在xml檔案的同一目錄resource下,然後在DOCTYPE定義的時候改為這兩個檔案,如:

<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"

          "sql-map-2.dtd">

 

4. 源檔案夾src下面建立類leon.ibatis.User

package leon.ibatis;public class User {private int userid;private String username;private String password;private String groupname;//省略getter,setter}

在建立類,來應用ibatis:

package leon.ibatis;import java.io.Reader;import java.util.ArrayList;import java.util.List;import com.ibatis.common.resources.Resources;import com.ibatis.sqlmap.client.SqlMapClient;import com.ibatis.sqlmap.client.SqlMapClientBuilder;public class TestIBatis {public static void main(String str[]) throws Exception {String resource = "SqlMapConfig.xml";Reader reader = Resources.getResourceAsReader(resource);SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);List<User> list=new ArrayList<User>();list = sqlMap.queryForList("getAllUsers", "EMPLOYEE");int s = list.size();System.out.println("Selected " + s + " records.");System.out.println("USERID\tUSERNAME\tPASSWORD\tGROUP");for (int i = 0; i < s; i++) {System.out.print(list.get(i).getUserid()+"\t");System.out.print(list.get(i).getUsername()+"\t\t");System.out.print(list.get(i).getPassword()+"\t\t");System.out.println(list.get(i).getGroupname());}}}

運行這個類,列印出:

Selected 4 records.USERIDUSERNAMEPASSWORDGROUP1ALEXPICKLEEMPLOYEE2JDOETESTEMPLOYEE3Leon1234EMPLOYEE4Mike1234EMPLOYEE

最後,本例子中SqlMap.xml中定義了兩個select,其實也就是有兩個方法了。上面用了getAllUsers,還有一個getUserById可以作為你的上手的實驗,試試看吧!

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.