zoukankan      html  css  js  c++  java
  • 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中把需要的数据展示出来,不需要的数据可以不展示





  • 相关阅读:
    Spring MVC
    Hibernate的状态
    设计模式
    Git在Eclipse中的使用
    深入理解Node.js基于事件驱动的回调
    nodejs核心技术
    webpack使用
    vue各种实例集合
    vue之component
    axios详解
  • 原文地址:https://www.cnblogs.com/baiyifengyun/p/13738661.html
Copyright © 2011-2022 走看看