mybatis学习笔记(四)
2024-10-19 17:33:57
resultType 语句返回值类型的完整类名或别名
- resultType 返回的是一个map集合,key是列名,value是对应的值
使用resultMap实现联表查询
- resultMap 查询的结果集与java Bean 之间建立映射关系
- 多表查询sql语句
SELECT su.*,r.rolename FROM sys_user su,"role" r WHERE su.roleid =r.id AND r.id =1;
- 查询的结果集
- 多表查询sql语句
- 为结果集与实体类建立映射关系,在User实体类中添加需要展示的字段,roleName,roleId
- 使用resultMap建立需要展示的数据,property表示实体类的属性,column表示表的字段
- 测试类
- 控制台输出
注意:在dao层接口中的方法必须与mapper文件中的sql语句相对应。例如下列错误
- junit报错如下
- 控制台输出
15:01:39.643 [main] DEBUG org.apache.ibatis.logging.LogFactory - Logging initialized using 'class org.apache.ibatis.logging.log4j2.Log4j2Impl' adapter.
15:01:39.649 [main] DEBUG org.apache.ibatis.io.VFS - Class not found: org.jboss.vfs.VFS
15:01:39.650 [main] DEBUG org.apache.ibatis.io.JBoss6VFS - JBoss 6 VFS API is not available in this environment.
15:01:39.650 [main] DEBUG org.apache.ibatis.io.VFS - Class not found: org.jboss.vfs.VirtualFile
15:01:39.651 [main] DEBUG org.apache.ibatis.io.VFS - VFS implementation org.apache.ibatis.io.JBoss6VFS is not valid in this environment.
15:01:39.651 [main] DEBUG org.apache.ibatis.io.VFS - Using VFS adapter org.apache.ibatis.io.DefaultVFS
15:01:39.652 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Find JAR URL: file:/D:/program/jee-2020-03/workspace/mybatis-demo/build/classes/cn/bdqn/pojo
15:01:39.652 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Not a JAR: file:/D:/program/jee-2020-03/workspace/mybatis-demo/build/classes/cn/bdqn/pojo
15:01:39.696 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: Role.class
15:01:39.698 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: User.class
15:01:39.699 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Listing file:/D:/program/jee-2020-03/workspace/mybatis-demo/build/classes/cn/bdqn/pojo
15:01:39.699 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Find JAR URL: file:/D:/program/jee-2020-03/workspace/mybatis-demo/build/classes/cn/bdqn/pojo/Role.class
15:01:39.699 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Not a JAR: file:/D:/program/jee-2020-03/workspace/mybatis-demo/build/classes/cn/bdqn/pojo/Role.class
15:01:39.700 [main] DEBUG org.apache.ibatis.io.DefaultVFS - Reader entry: ����
原因是在RoleMapper接口中写方法,没有在相应的xml文件中写sql语句
- RoleMapper.java
- RoleMapper.xml
- 当数据库的列名与实体类不一样时,需要使用resultMap映射
- 联合查询时,也需要resultMap做关联映射
配置mybatis的log实现为log4j2,在后台打印输出时会打印sql语句
使用association来关联java Bean实现查询
- 当一个实体类是另一个实休类的属性时,如:
- 当一个实体类是另一个实休类的属性时,如:
- 使用resultMap 的子属性association来实现
- 还可以单独写一个resultMap 然后在association中引用,如:
- 测试结果是一样的
- 当实体类中存在集合时
- 使用resultMap 中的collection来关联实现
- 测试类
- 测试结果
resultMap, association,collection中把需要的数据展示出来,不需要的数据可以不展示
最新文章
- 浅析Java 泛型
- Sql Server创建函数
- Mongodb学习笔记二(Mongodb基本命令)
- node安装笔记
- 输入URL之后都发生了什么
- 【fedora】强制解除yum锁定
- Opencv——彩色图像灰度化的三种算法
- Layout Resource官方教程(3)在layout中用include嵌入其它layout
- 有效解决js中添加border后动画bug问题
- PHP Cookie学习
- Deep Residual Learning for Image Recognition(MSRA-深度残差学习)
- HttpClient, HttpClientHandler, and WebRequestHandler介绍
- 自己编写jQuery动态引入js文件插件 (jquery.import.dynamic.script)
- CSS3新增伪类汇总
- 31. Next Permutation(中等,搞清楚啥是 next permutation)
- 为什么VUE注册组件命名时不能用大写的?
- 4步解决“Microsoft Office Professional Plus 2013在安装过程中出错”
- UVA10559 Blocks(区间dp)
- 生日蛋糕 POJ - 1190 (搜索+剪枝)
- oracle数据库启动和关闭方式
热门文章
- java输入/输出流的基本知识
- 全网最详细的AbstractQueuedSynchronizer(AQS)源码剖析(一)AQS基础
- pipeline groovy
- 转:Android控件属性
- MyBatis 3学习笔记
- 微软要放弃Electron了???聊聊WebView2
- 好奇怪啊,如果邮箱JSON格式的字符串不是在一行上,那么转为JSON将转换不成功,估计是数据格式有问题吧
- JavaWebServle执行流程解析
- Centos使用kafka自带zookeeper安装kafka
- js判断是电脑(pc)访问还是手机(mobile)访问