iBATISの学習プロセス
SqlClientに新しいで、次いで、こうしてibatisTestのSqlClientによってそのメソッドを呼び出して、データベースとSqlMapConfig構成などの情報を読み取り、異なるデータソースSQLMAPマップ・ファイルをロードすることによってのiBATISのSqlClient SQLのsqlMapConfigクライアントの確立マップファイルを、対応するSQL文を呼び出すためSQLMAPクライアント
SQLMAPマッピングファイル
1の<?xml version = "1.0"エンコード= "UTF-8"?>
2
3 <!DOCTYPE SQLMAP
4 PUBLIC " - // ibatis.apache.org//DTD SQL地図2.0 // EN"
5 "http://ibatis.apache.org/dtd/sql-map-2.dtd">
6 //命名空间
7 <SQLMAP名前空間= "EMP">
8
9 <! -使用型の別名が完全なクラス名を毎回入力しないようにします。- >
//别名
10 <typeAlias別名= "EMP"タイプ= "com.yinhai.ibatisdemo.ibatis.domain.Emp" />
11
12 <! - 結果マップは、列の間のマッピングが返さ説明
クエリから13を、およびクラスのプロパティ。結果マップISN」
16 <このresultMap ID = "empResult"クラス= "EMP">
17 <結果プロパティ= "EMPNO"カラム= "EMPNO" />
18 <結果プロパティ= "ENAME"欄= "ENAME" />
19 <結果プロパティ= "ジョブ"欄= "JOB" />
20 <結果プロパティ= "MGR"カラム= "MGR" />
21 <プロパティ= "HIREDATE"欄= "HIREDATE"をもたらす/>
22 <プロパティ= "SAL"をもたらしますカラム= "SAL" />
23 <プロパティ= "COMM"カラム= "COMM"をもたらす/>
24 <結果プロパティ= "DEPTNO"欄= "DEPTNO" />
25 <プロパティ= "性別"をもたらします
列= "GENDER" /> 26 </このresultMap>
27
28 <! - Accountクラスに対する結果マップを使用してパラメータなしで選択します。- >
29 <選択のid = "selectAllEmps"このresultMap = "empResult">
30 セレクトEMPNO、 31 ENAME、 32 ジョブ、33 MGR、34 HIREDATE、35 SAL、36 COMM、37 DEPTNO、38 男女39 EMP 40から41 <SELECT ID = "selectEmpById" parameterClass = "java.lang.Integerの" </選択> resultClassを= "EMP"> 42 43 セレクトEMPNO、44 ENAME、45 ジョブ、46 MGR、47 HIREDATE、48 SAL、49 COMM、50 DEPTNO、51 男女52 EMPNO = EMP 53から#EMPNO#54 </ 55>選択56はEMPNO = EMPから削除<ID = "deleteEmp" parameterClass = "java.lang.Integerの"を削除> updateEmp "parameterClass =" com.yinhai.ibatisdemo#EMPNO#57 </削除> 58 <更新ID ="。ibatis.domain.Emp "> 59更新EMPセットENAME =#のENAMEの#どこEMPNO =#EMPNO#60 </更新> 61 <インサートID = "insertEmp" parameterClass = "com.yinhai.ibatisdemo.ibatis.domain.Emp"> 62 EMPへの挿入(EMPNO、ENAME)値(#empno#、#1 ENAME位)63 </インサート> 64 </ SQLMAP>
SqlMapConfigクラス(コンフィギュレーションデータベース接続のプロパティでのiBATISとSQLMAP SqlMapConfigデータソース)
1の<?xml version = "1.0"エンコード= "UTF-8"?>
2
3 <!DOCTYPE sqlMapConfig
4 PUBLIC " - // ibatis.apache.org//DTD SQL地図コンフィグ2.0 // EN"
5 "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
6
7 <sqlMapConfig>
8 <設定useStatementNamespaces = "真" />
9 <! -内蔵のトランザクションマネージャを設定します。あなたが使用している場合
10 アプリケーションサーバーを、あなたはおそらく、そのトランザクションマネージャ使用したい
11と管理データソースを- >
//节点事务交给JDBC处理
12 <トランザクションマネージャーのタイプ=「JDBC」commitRequired =「false」に>
14 <プロパティ名= "JDBC.Driver"値= "oracle.jdbc.OracleDriver" />
15 <プロパティ名= "JDBC.ConnectionURL"値= "JDBC:オラクル:薄い:192.168.10.135 @:1521:ORCL" / >
16 <プロパティ名= "JDBC.Username"値= "px404" />
17 <プロパティ名= "JDBC.Password"値= "px404" />
18 </データソース>
19 </のTransactionManager>
20
21 <! - - SQLマップXMLファイルを一覧表示します。彼らはからロードすることができます
> -彼らはここにあるとして(com.domain.data ...)、22クラスパス
//配置SQLMAP映射文件数据源
23 <SQLMAPリソース= "emp.xml" />
24
28
<29 / sqlMapConfig>
SqlClient(SqlClientのSqlMapConfigに情報を読み取り、情報SQLMAPクライアントを確立して、クラスの新しいメソッドに、SQLMAPの方法でメソッドを呼び出すために、クライアントを使用して)
パッケージcom.yinhai.ibatisdemo.ibatis.test;
インポートcom.ibatis.sqlmap.client.SqlMapClient;
インポートcom.ibatis.sqlmap.client.SqlMapClientBuilder;
インポートcom.ibatis.common.resources.Resources; インポートcom.yinhai.ibatisdemo .ibatis.domain.Emp;
インポートするjava.io.Reader;インポートにjava.io.IOException;インポートはjava.util.List;インポートます。java.sql.SQLException; publicクラスのSqlClient {プライベート静的のSqlMapClient sqlMapper;静的{試み{
// SqlMapConfig情報は、リーダー= Resources.getResourceAsReaderリーダー(「SqlMapConfig.xml」をお読み;)
//読み込みに応じてのSqlMapClientクライアント情報を作成sqlMapper =をSqlMapClientBuilder.buildSqlMapClient(リーダー)。
//关闭读取流reader.close(); }キャッチ(IOExceptionを電子){//高速失敗。新しいのRuntimeExceptionをスロー(+「のSqlMapClientインスタンス構築しながら、悪い何かが起こった」E、E)を、}} //查询所有信息パブリック静的リストselectAllEmps()スローのSQLExceptionは、{( "emp.selectAllEmps" sqlMapper.queryForListを返します)。}パブリック静的EmpのselectEmpById信息//根据ID查询(整数EMPNO)がスローするSQLException {リターン(EMP)sqlMapper.queryForObject( "emp.selectEmpById" 、EMPNO)を、} / *新增* /パブリック静的INT insertEmp(EMPのEMP)がスローSQLExceptionが{sqlMapper.update( "emp.insertEmp"戻り、EMP)を、} / *修改* /パブリック静的int型updateEmp(EMPのEMP)がスローするSQLException {sqlMapper.updateを返す( "EMP。、EMP)。} / *删除* /パブリック静的INT deleteEmp(整数EMPNO)スローSQLExceptionが{sqlMapper.update返す( "emp.deleteEmp"を、EMPNO)。}}
ibatisTest(SQLMAP対応する呼び出しに対応する方法でのSqlClient)
1つのパッケージcom.yinhai.ibatisdemo.ibatis.test。
2
3インポートcom.yinhai.ibatisdemo.ibatis.domain.Emp。
4
5インポートjava.sql.SQLExceptionという。
6インポートjava.util.Listに。 7 8パブリッククラスibatisTests { 9公共の静的な無効メイン(文字列[]引数){10のtry {11 //查询12リストList = SqlClient.selectAllEmps()。13 (オブジェクトI:リスト14 ){15 のSystem.out.println(I)。16} // 17 System.out.print( "1" + list.toString())。18 19 //根据ID查询20 // emp表EMP = SqlClient.selectEmpById(9999)。21 // System.out.print( "2" + EMP)。22 //删除23 // int型I =(1466)SqlClient.deleteEmp。24 // System.out.print(I); 25 26 // 27 //修改のEmp EMP =新しいEmpの(); 28 // emp.setEname( "测试"); 29 // emp.setEmpno(1483); 30 // int型I = SqlClient.updateEmp(EMP)。31 // System.out.print(I); 32 // 33 //新增のEmp EMP =新しいEmpの(); 34 // emp.setEmpno(1011); 35 // emp.setEname( "傅旭东"); 36 // int型I = SqlClient.insertEmp(EMP)。37 // System.out.print(I)。38}キャッチ(のSQLException E){39 e.printStackTrace(); 40 } 41 42 } 43}