Mybatis框架resultMap元素的自动映射级别

摘要:
,“%”)和用户角色=?

resultMap的自动映射级别:分为三种:NONE  PARTIAL  FULL

其中默认的属性是:PARTIAL:开启自动匹配,会自动匹配数据库中的字段名和实体类中的属性名,如果一致,就能匹配上,如果不一致,就不能进行匹配

mybatis-config.xml

Mybatis框架resultMap元素的自动映射级别第1张

 UserMapper.xml

Mybatis框架resultMap元素的自动映射级别第2张

 UserMapper.java

Mybatis框架resultMap元素的自动映射级别第3张

编写测试方法:

 1 @Test
 2     public void test9() {
 3         Map<String, String> map = new HashMap<String, String>();
 4         map.put("userName1", "赵");
 5         map.put("userRole1", "3");
 6     
 7         SqlSession sqlSession = null;
 8         java.util.List<User> userList2 = new ArrayList<User>();
 9         try {
10             sqlSession = MyBatisUtil.createSqlSession();
11             //使用mapper映射的方式实现
12             //userList2 = sqlSession.selectList("cn.smbms.dao.user.UserMapper.getUserListByUserName",userNameString);
13             //调用mapper接口的方式实现
14             userList2 = sqlSession.getMapper(UserMapper.class).getUserListByUserName5(map);
15             int size = userList2.size();
16             mlogger.info("获取到的记录数是:" + size);
17 
18         } catch (Exception e) {
19             // TODO: handle exception
20         } finally {
21             // 最后一定要注意:关闭会话
22             MyBatisUtil.closeSqlSession(sqlSession);
23 
24         }
25         for (User user2 : userList2) {
26             mlogger.info("用户名:" + user2.getUserName() + ",密码:" + user2.getUserPassword()+",用户角色:"+user2.getUserRoleName()+"地址:"+user2.getAddress());
27         }
28 
29     }

运行结果:

1 [DEBUG] 2019-11-04 22:27:39,810 cn.smbms.dao.user.UserMapper.getUserListByUserName5 - ==>  Preparing: select a.*,r.roleName from smbms_user a,smbms_role r where username like CONCAT ('%',?,'%') and userRole = ? and a.userRole=r.id 
2 [DEBUG] 2019-11-04 22:27:39,990 cn.smbms.dao.user.UserMapper.getUserListByUserName5 - ==> Parameters: 赵(String), 3(String)
3 [INFO] 2019-11-04 22:27:40,099 cn.smbms.dao.test.UserMapperTest - 获取到的记录数是:1
4 [DEBUG] 2019-11-04 22:27:40,099 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@3caa4b]
5 [DEBUG] 2019-11-04 22:27:40,099 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@3caa4b]
6 [DEBUG] 2019-11-04 22:27:40,099 org.apache.ibatis.datasource.pooled.PooledDataSource - Returned connection 3975755 to pool.
7 [INFO] 2019-11-04 22:27:40,099 cn.smbms.dao.test.UserMapperTest - 用户名:赵燕,密码:0000000,用户角色:普通员工地址:北京市海淀区回龙观小区10号楼

如果不想进行自动匹配,只需设置autoMappingBehavior的属性值为NONE,就把自动匹配的功能关掉了

mybatis-config.xml

Mybatis框架resultMap元素的自动映射级别第4张

UserMapper.xml

Mybatis框架resultMap元素的自动映射级别第5张

 UserMapper.java

Mybatis框架resultMap元素的自动映射级别第6张

 编写测试方法:

 1 @Test
 2     public void test9() {
 3         Map<String, String> map = new HashMap<String, String>();
 4         map.put("userName1", "赵");
 5         map.put("userRole1", "3");
 6     
 7         SqlSession sqlSession = null;
 8         java.util.List<User> userList2 = new ArrayList<User>();
 9         try {
10             sqlSession = MyBatisUtil.createSqlSession();
11             //使用mapper映射的方式实现
12             //userList2 = sqlSession.selectList("cn.smbms.dao.user.UserMapper.getUserListByUserName",userNameString);
13             //调用mapper接口的方式实现
14             userList2 = sqlSession.getMapper(UserMapper.class).getUserListByUserName5(map);
15             int size = userList2.size();
16             mlogger.info("获取到的记录数是:" + size);
17 
18         } catch (Exception e) {
19             // TODO: handle exception
20         } finally {
21             // 最后一定要注意:关闭会话
22             MyBatisUtil.closeSqlSession(sqlSession);
23 
24         }
25         for (User user2 : userList2) {
26             mlogger.info("用户名:" + user2.getUserName() + ",密码:" + user2.getUserPassword()+",用户角色:"+user2.getUserRoleName()+"地址:"+user2.getAddress());
27         }
28 
29     }

运行结果:

1 [DEBUG] 2019-11-04 22:36:38,393 cn.smbms.dao.user.UserMapper.getUserListByUserName5 - ==>  Preparing: select a.*,r.roleName from smbms_user a,smbms_role r where username like CONCAT ('%',?,'%') and userRole = ? and a.userRole=r.id 
2 [DEBUG] 2019-11-04 22:36:38,623 cn.smbms.dao.user.UserMapper.getUserListByUserName5 - ==> Parameters: 赵(String), 3(String)
3 [INFO] 2019-11-04 22:36:38,742 cn.smbms.dao.test.UserMapperTest - 获取到的记录数是:1
4 [DEBUG] 2019-11-04 22:36:38,742 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@ed0220c]
5 [DEBUG] 2019-11-04 22:36:38,742 org.apache.ibatis.transaction.jdbc.JdbcTransaction - Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@ed0220c]
6 [DEBUG] 2019-11-04 22:36:38,742 org.apache.ibatis.datasource.pooled.PooledDataSource - Returned connection 248521228 to pool.
7 [INFO] 2019-11-04 22:36:38,752 cn.smbms.dao.test.UserMapperTest - 用户名:赵燕,密码:null,用户角色:普通员工地址:null

免责声明:文章转载自《Mybatis框架resultMap元素的自动映射级别》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇HTTP抓包神器HTTP Analyzer V7 Build7.5.4汉化+注册机用js实现图片的无缝滚动效果下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

后台发送请求,HttpClient的post,get各种请求,带header的请求

HttpClient依赖jar包: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</...

C#压缩指定的文件并生成zip文件

程序集需要添加的引用是:ICSharpCode.SharpZipLib.dll 使用实例: //执行压缩 ClsZip.Zip(downZipPath, sourceTopPath, 1, "", allFilePath);//执行下载 ctrlDcAllGrxx.download(do...

[OAuth]基于DotNetOpenAuth实现Client Credentials Grant

Client Credentials Grant是指直接由Client向Authorization Server请求access token,无需用户(Resource Owner)的授权。比如我们提供OpenAPI让大家可以获取园子首页最新随笔,只需验证一下Client是否有权限调用该API,不需要用户的授权。而如果Client需要进行发布博客的操作,就...

c# 通过程序修改hosts文件

1 根据ip替换 var OSInfo =Environment.OSVersion; string pathpart = "hosts"; if (OSInfo.Platform ==PlatformID.Win32NT) { //is windows NT pathpart = "system32\drivers\etc\hosts";...

MySqlHelper、CacheHelper

MySqlHelper代码: using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.Data; using M...

Android 下的EXIF

一.什么是Exif Exif(Exchangeable Image File 可交换图像文件)是一种图象文件格式,它的数据存储与JPEG格式是完全相同的。实际上Exif格式就是在JPEG格式头部插入了数码照片的信息,包括拍 摄时的光圈、快门、白平衡、ISO、焦距、日期时间等各种和拍摄条件以及相机品牌、型号、色彩编码、拍摄时录制的声音以及全球定位系统(GPS...