MyBatisの紹介
MyBatisは、プレーンSQLクエリ、ストアドプロシージャ、高度なマッピングをサポートする優れた永続レイヤーフレームワークです。 MyBatisは、ほぼすべてのJDBCコードとパラメーターの手動設定を排除し、結果セットを検索します。 MyBatisは、構成に単純なXMLまたはアノテーションを使用して、インターフェイスとJavaのPOJO(プレーン古いJavaオブジェクト)をデータベースのレコードにマッピングするためのオリジナルマッピングを使用できます。
mybatisダウンロード:https://github.com/mybatis/mybatis-3/releases
MyBatisインスタンス
ユーザーテーブルでのCRUD操作:
ユーザーテーブル:
-- ------------------------------ Table structure for `user`-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`userName` varchar(50) DEFAULT NULL,`userAge` int(11) DEFAULT NULL,`userAddress` varchar(200) DEFAULT NULL,PRIMARY KEY (`id`)) Engine = innodb auto_increment = 6デフォルトcharset = utf8; - --------------------------ユーザーのレコード - ------------------------- `user` values( '1'、 'summer'、 '30'、 'shanghai') '29'、 'ある場所'); `user` valuesに挿入( '4'、 'lu'、 '28'、 'ある場所');「 '5'、 'xiaoxun'、 '27'、 'nanjing'); mybatis xml configuration file configuration.xml <?xml version = "1.0" encoding = "utf-8"?> <!doctype configuration public " - // mybatis.org//dtd config // en" "http:///mybatis.org/dtd/mybatis-3onfigエイリアス定義 - > <TypeAliase> <TypeAlias Alias = "user" type = "com.mybatis.test.user"/> </typealiase> <環境defortion = "development"> <環境id = "開発"> <transactionManager Type = "JDBC"/> <DataSource Type = "POOLED" value = "com.mysql.jdbc.driver"/> <property name = "url" value = "jdbc:mysql://127.0.0.1:3306/mybatis"/> <プロパティ名= "username" value = "root"/> <プロパティname = "propertion" passward "マッパーファイル、各XML構成ファイルはインターフェイスに対応します - > <マッパーズ> <マッパーリソース= "com/mybatis/test/user.xml"/> <mappers> </configuration>
ユーザーマッパーのuser.xml構成ファイルを定義します
<?xml version = "1.0" encoding = "utf-8"?> <!doctype mapper public " - // mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd Selectステートメント - > <id = "selectuserbyid" parametertype = "int" resultType = "user"> select * from `users" where user.id =#{id} </select> <! - 一貫性のないプロパティ名の問題とデータベース列名の問題を解決できます。 column = "user_id" /> <resultプロパティ= "username" column = "user_username" /> <respurentプロパティ= "userage" column = "user_userage" /> <respurentプロパティ= "useraddress" column = "user_useraddress" /> < /resultmap> - > <! id = "SelectUsersByName" parameterType = "string" resultmap = "userresultmap"> select * user.username =#{username} </select> - > <selectusersbyname "parametertype =" string "resulttype ="ユーザー "それは増加操作を実行します。 IDとパラメータ型は、iUSEROPERATIONインターフェイスのADDUSERメソッドの名前とパラメータータイプと同じです。 「true」に設定されたUseGeneratedKeysは、MyBatisがデータベースによって自動的に生成されたプライマリキーを取得したいことを示しています。 KeyProperty = "ID"取得したプライマリキー値をユーザーのIDプロパティに注入することを指定します - > <ID = "adduser" parametertype = "usegeneratedkeys =" true "keyproperty =" id ">ユーザー(username、userage、useraddress)値(#{username}、#{username}、#{username}、#{username}、 </insert> <update id = "updateUser" parametertype = "user"> ushled users set username =#{username}、userage =#{userage}、useraddress =#{useraddress} where where where where where where where where where where where where where where where id =#{id} </delete> </mapper>構成ファイルは、インターフェイスとSQLステートメント間のマッピング関係を実装します。 SelectusersBynameは2つの方法を使用して実装しています。コメントアウトも実装です。 ResultMapを使用すると、属性とデータベース列名の間のマッピング関係を定義できます。プロパティはクラスのプロパティ、列はテーブルの列名であるか、テーブル列名のエイリアスにすることができます!
ユーザークラスの定義:
パッケージcom.mybatis.test; public class user {private int id; private string username; private int userage; private string useraddress; public int getid(){return id;} public void setid(this.id){this.id = id;} public string getUsername(){return username;} public void setus(username) getUserage(){return userage;} public void setuserage(int userage){this.userage;} public string getUserAddress(){return userAddress;} public void setUserAddress(string userAddress){this.userAddress = userAddress;}@dentridepublic string(us userddress; "+this.userage+" "+this.userAddress;}} iuseroperaton定義:
パッケージcom.mybatis.test; import java.util.list; public interface iuseroperation {public user selectuserbyid(int id); public list <user> selectusersbyname(string username); public void adduser(user user); public void updetwususer(user user); public void deleteuser(int id); iuseroperationは、mybatisのxml構成ファイルの操作インターフェイス、関数名、および操作ID名に対応します。
テストクラステスト:
パッケージcom.mybatis.test; import java.io.reader; import java.util.list; import org.apache.ibatis.io.io.resources; Import org.apache.ibatis.session.squlsessess; import org.apache.ibatis.session.ssession.ssessionfactory; import inmolg.apach.ibatis. org.apache.ibatis.session.sqlsessionfactorybuilder; public class test {private static sqlsessionfactory sqlsessionfactory; private static reader reader; static {try {reader = resources.getResourceasReader( "configuration.xml"); (例外e){e.printstacktrace();}} public static sqlsessionfactory getsession(){return sqlsessionfactory;} public void getuserbyid(int userid){sqlsession = sqlsessionfactory.opensession(); trea useroperation.selectuserbyid(userid); if(user!= null){system.out.println(user.getid() + ":" + user.getusername() + " +" + user.getUserAddress();}} fully {session.close();}} sqlsessionfactory.opensession(); try {iuseroperation useroperation = session.getMapper(iuseroperation.class); list <user> users = useroperation.selectusersbyname(username); for(user user:users){system.out.out.println(user.getId() + " user.getuserAddress());}}最後に{session.close();}}/***追加後、commit*/public void adduser(){user user = new user(); user.setuserAddress( "place"); user.setusername( "test_add"); user.setusesion(30); sqlsession(); sqlsession(); {iuseroperation useroperation = session.getMapper(iuseroperation.class); useroperation.adduser(user); session.commit(); system.out.println( "add user id:" + user.getid();} fully {session.close();} session = sqlsessionfactory.opensession(); try {iuseroperation useroperation = session.getMapper(iuseroperation.class); user user = useroperation.selectuserbyid(1); if(user!= null){user.setuserAddress( "a new place"); useroperation.update.suser(user); {session.close();}}/***削除後、commit。** @param id*/public void deleteuser(int id){sqlsessionfactory.opensession(); try {iuseroperation useroperation = session.getmapper.(iuseroperation.class); useroperation.deleteer() {session.close();}} public static void main(string [] args){try {test test = new test(); // test.getuserbyid(1); // test.getuserList( "test1"); // test.adduser(); // test.updateuser(); // test.deleteuser(); // test.deleteuser(6); {system.out.println(e.getmessage());}}}上記は、編集者が紹介した追加、削除、修正、クエリ(CRUD)のMyBatis実装の例です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!