mybatis学习笔记(四)

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;
    • 查询的结果集
  • 为结果集与实体类建立映射关系,在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中把需要的数据展示出来,不需要的数据可以不展示



来自为知笔记(Wiz)


posted on   白衣风云  阅读(685)  评论(0编辑  收藏  举报

编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示