このresultMap自動マップレベル:3つのタイプに分け:FULL NONEはPARTIAL
デフォルトの属性がある場合:PARTIAL:自動マッチングを有効にするには、自動的にデータベースのフィールド名とエンティティクラスの属性名と一致しますが、一致させることができないではない場合は、同意した場合、一致することができるようになります
MyBatisの-config.xmlの
UserMapper.xml
UserMapper.java
テストメソッドの記述:
1 @Test 2 公共 ボイドTEST9(){ 3 地図<文字列、文字列>マップ= 新しい HashMapの<文字列、文字列> (); 4 map.put( "USERNAME1"、 "赵" )。 5 map.put( "userRole1"、 "3" )。 6 7 SQLSESSION SQLSESSION = NULL ; 8 java.util.Listに<ユーザー> userList2 = 新規のArrayList <ユーザー> (); 9 トライ{ 10 SQLSESSION = MyBatisUtil.createSqlSession()。 // userList2 = sqlSession.selectList( "cn.smbms.dao.user.UserMapper.getUserListByUserName"、userNameString); 13である // 呼び出しインタフェース方法マッパ 14 userList2 = sqlSession.getMapper(UserMapper クラス).getUserListByUserName5(マップ) ; 15 int型のサイズ= userList2.size(); 16 mlogger.info( "レコードの数を取得する:" + サイズ); 17 18れる } キャッチ(例外E){ 19 // TODO:例外処理 20はである } 最後に{ 21であります // 最後に、我々は注意を払う必要があります:セッションを閉じる 22 ; MyBatisUtil.closeSqlSession(SQLSESSION) 23は、 24 } 25 のための{(userList2ユーザuser2) 26である "+ user2.getUserName()+:mlogger.info( "ユーザ名" 、 + user2.getUserPassword()+":パスワード" 、 ユーザーの役割: "+ user2.getUserRoleName()+"アドレス:「+ user2.getAddress()); 27 } 28 29 }
結果:
1 [DEBUG] 2019年11月4日22:27:39810 cn.smbms.dao.user.UserMapper.getUserListByUserName5 - ==>準備:。、smbms_role R smbms_userから*、r.roleNameを選択CONCAT様名( '%'、?、 '%')とUSERROLE =?そしてa.userRole = r.id 2 [デバッグ] 2019年11月4日22:27:39990 cn.smbms.dao.user.UserMapper.getUserListByUserName5 - ==>パラメータ:赵(文字列)、3 (文字列) 3 [ INFO] 2019年11月4日22:27:40099 cn.smbms.dao.test.UserMapperTest -获取到的记录数是:1 4 [DEBUG] 2019年11月4日22:27:40099 org.apache.ibatis。 transaction.jdbc.JdbcTransaction -へのリセット自動コミット真のJDBC接続の[com.mysql.jdbc.JDBC4Connection@3caa4b] 5[デバッグ] 2019年11月4日22である:27:40099 org.apache.ibatis.transaction.jdbc.JdbcTransaction - JDBC接続[com.mysql.jdbc.JDBC4Connection@3caa4b]を閉じる 6。 [DEBUG] 2019年11月4日22です。 27:40099 org.apache.ibatis.datasource.pooled.PooledDataSource -返さコネクション3975755 プールへ。 7 [INFO] 2019年11月4日22:27:40099 cn.smbms.dao.test.UserMapperTest -ユーザ名:趙ヤンパスワード:0000000、ユーザーの役割:一般的なスタッフアドレス:海淀区、北京Huilongguanコミュニティの構築10
あなたが自動マッチングをしたくない場合は、単に設定autoMappingBehavior NONE属性値は、自動マッチング機能オフスイッチを入れます
MyBatisの-config.xmlの
UserMapper.xml
UserMapper.java
テストメソッドの記述:
1 @Test 2 公共 ボイドTEST9(){ 3 地図<文字列、文字列>マップ= 新しい HashMapの<文字列、文字列> (); 4 map.put( "USERNAME1"、 "赵" )。 5 map.put( "userRole1"、 "3" )。 6 7 SQLSESSION SQLSESSION = NULL ; 8 java.util.Listに<ユーザー> userList2 = 新規のArrayList <ユーザー> (); 9 トライ{ 10 SQLSESSION = MyBatisUtil.createSqlSession()。 // userList2 = sqlSession.selectList( "cn.smbms.dao.user.UserMapper.getUserListByUserName"、userNameString); 13である // 呼び出しインタフェース方法マッパ 14 userList2 = sqlSession.getMapper(UserMapper クラス).getUserListByUserName5(マップ) ; 15 int型のサイズ= userList2.size(); 16 mlogger.info( "レコードの数を取得する:" + サイズ); 17 18れる } キャッチ(例外E){ 19 // TODO:例外処理 20はである } 最後に{ 21であります // 最後に、我々は注意を払う必要があります:セッションを閉じる 22 ; MyBatisUtil.closeSqlSession(SQLSESSION) 23は、 24 } 25 のための{(userList2ユーザuser2) 26である "+ user2.getUserName()+:mlogger.info( "ユーザ名" 、 + user2.getUserPassword()+":パスワード" 、 ユーザーの役割: "+ user2.getUserRoleName()+"アドレス:「+ user2.getAddress()); 27 } 28 29 }
結果:
1 [DEBUG] 2019年11月4日22:36:38393 cn.smbms.dao.user.UserMapper.getUserListByUserName5 - ==>準備:。、smbms_role R smbms_userから*、r.roleNameを選択CONCAT様名( '%'、?、 '%')とUSERROLE =?そしてa.userRole = r.id 2 [デバッグ] 2019年11月4日22:36:38623 cn.smbms.dao.user.UserMapper.getUserListByUserName5 - ==>パラメータ:赵(文字列)、3 (文字列) 3 [ INFO] 2019年11月4日22:36:38742 cn.smbms.dao.test.UserMapperTest -获取到的记录数是:1 4 [DEBUG] 2019年11月4日22:36:38742 org.apache.ibatis。 transaction.jdbc.JdbcTransaction -へのリセット自動コミット真のJDBC接続の[com.mysql.jdbc.JDBC4Connection@ed0220c] 5[デバッグ] 2019年11月4日22である:36:38742 org.apache.ibatis.transaction.jdbc.JdbcTransaction - JDBC接続[com.mysql.jdbc.JDBC4Connection@ed0220c]を閉じる 6。 [DEBUG] 2019年11月4日22です。 36:38742 org.apache.ibatis.datasource.pooled.PooledDataSource -返さ248 521 228接続プールに。 7。 [INFO] 2019年11月4日22である:36:38752 cn.smbms.dao.test.UserMapperTest -名:趙ヤンパスワード:ヌル、ユーザーの役割:一般的なスタッフアドレス:ヌル