まず、知人MyBatisの
1.関連のjarパッケージを追加します。
2.対応するエンティティクラスのBeanを作成します。
3. MyBatisのプロファイルを作成します。
4. MyBatisのマッピングファイルを作成します。
5. MyBatisのマッピングファイルは、プロファイルに導入します。
6.試験。
第三に、最適化
クエリがマッピングファイルが複数ある場合は1、パラメータセットマップとして使用することができます
2.個別に列挙されたプロパティファイルをdb.recourses、あなたはファイルをインポートする必要がMyBatisのプロファイル属性、利用$の後に{}
<プロパティリソース= "db.properties"> </プロパティ>
$ {} jdbc.driver
エイリアスの下のパッケージからすべてのクラスのエンティティクラス、クラス名のエイリアス(コードの他人ではない便利な解釈、推奨されません)3.別名
<typeAliases>
<パッケージ名= "com.zhiyou100.klb.bean" />
</ typeAliases>
4.私たちは、トラブルシューティングに役立つために、ログ情報のlog4j.propertiesを追加します。
併せてxmlファイル内のインターフェイスの使用
1.一致するインターフェイス、インターフェイスおよびマッピングファイルを作成します。メソッド名name = ID
2.マッピング・ファイル、ファイルパスに名前空間は、例えば、マッピングされた:com.zhiyou100.klb.dao.UsersDao
3.テストプログラムの動作条件、
//分析conf.xml
リーダー= Resources.getResourceAsReaderリーダー( "conf.xml");
//オブジェクトを取得したSessionFactory
A SqlSessionFactoryのSessionFactory SqlSessionFactoryBuilder新しい新=()ビルド(リーダー);.
データベース操作するための//取得セッションオブジェクト
セッションを= sessionFactory.openSession();
//は、インタフェースの実装クラスを取得
usersDao = session.getMapper(UsersDao.classを)。
第五に、クラス属性の不一致を持つデータベース内のフィールドを解決するために
同じ開始エイリアス属性名、エイリアスやクラスをフィールドへのSQL文で1
2.このresultMapを使用して
<! -参照このresultMapタグ- >
<SELECT上記ID = "getClazz"のParameterType = "INT"このresultMap = "clazzMap"> </ SELECT>
< -このresultMap :!書か数学とフィールドとの対応関係
タイプ:どのエンティティ表現そして、の対応関係テーブルクラス
- >
<このresultMapタイプ=「com.zhiyou100.klb.bean.Clazz」ID =「clazzMap」>
< - IDは:!エンティティ・クラスの主キーとの対応関係属性テーブルを示します- - >
<ID =列"C_ID"プロパティ= "CID" />
<結果カラム= "c_name"プロパティ= "CNAME" />
<結果列= "teacher_id"プロパティ= "TID" />
</このresultMap>
第六に、コンティンジェンシー・テーブル・クエリ
<! -このresultMap参照タグ- >
<SELECT ID = "getClazz"のParameterType = "int型" =このresultMap "clazzMap">
SELECT *クラスC、T先生、学生からのWHERE c.teacher_idのSとC = t.t_id。 = s.class_idとc.c_id = C_ID#{ID}
</ SELECT>
< -数学との間のこのresultMap :!ライトフィールドの対応関係
タイプ:エンティティクラス示す対応関係テーブル
- >
<このresultMapタイプ= " com.zhiyou100.klb.bean.Clazz "ID =" clazzMap ">
< - ID :!エンティティ・クラスのプライマリ・キーとの対応関係属性テーブルを示す- >
<ID =列" C_ID "プロパティ=" CID " />
<結果列= "c_name"プロパティ= "CNAME" />
<結果列= "teacher_id"プロパティ= "TID" />
<協会プロパティ= "先生"JavaTypeは= "com.zhiyou100.klb.bean.Teacher">
<id列= "t_id"プロパティ= "TID" />
<結果カラム= "t_name"プロパティ= "TNAME" />
</関連>
<コレクションプロパティ= "生" ofType = "com.zhiyou100.klb.bean.Student">
<IDカラム= "S_ID"プロパティ= "SID" />
<結果カラム= "s_name"プロパティ= "SNAME "/>
<結果列=" CLASS_ID」プロパティ= "CID" />
</コレクション>
<! - <関連付けプロパティ= "先生"のJavaType = "com.zhiyou100.klb.bean.Teacher"
列= "teacher_id"選択= "com.zhiyou100.klb.dao.TeacherDao.getTeacher">
</関連> - >
</このresultMap>
7、$でMyBatisの{}と{#}のを区別
- $:「コンテンツの解析に追加しません」彼は害スプライシングSQLインジェクション、SQL文の存在です。テーブル構造に渡されたとき。
- #:追加されました「」プレースホルダコンテンツ解析を防ぐために、SQLインジェクションをそのSQLを使用しました。
あなたが追加したときに、オブジェクトIDを返すためにどのように八、
<インサートは、ID = = "true"をkeyProperty = "ID"のParameterType = "ユーザー" useGeneratedKeysを"追加">
ユーザー(名前、年齢)の値(#{名前}、#{年齢})に挿入
</インサート>