react 前端框架如何驱动企业数字化转型与创新发展
599
2022-11-23
Mybatis 多对一 按查询嵌套处理和按结果嵌套处理
实体类
@Data public class Student { -- 学生 private int id; private String name; //学生要关联一个老师 private Teacher teacher; } @Data public class Teacher {-- 老师 private int id; private String name; }
新建学生mapper接口
public interface StudentMapper { //查询所有的学生信息,以及对应的老师信息 List
按查询嵌套处理
association 标签
association 标签包含以下属性。 property:对应实体类中的属性名,必填项。 javaType: 属性对应的 Java 类型。 resultMap: 可以直接使用现有的 resultMap
association 标签的嵌套查询常用的属性+ 懒加载
association 标签的嵌套查询常用的属性如下。 1.select:另一个映射查询的 id, MyBatis 会额外执行这个查询获取嵌套对象的结果。 2.column :列名(或别名),将主查询中列的结果作为嵌套查询的参数,配置方式如 column={propl=coll , prop2=col2}, propl 和 prop2 将作为嵌套查询的参数。 3.**fetch Type:数据加载方式,可选值为 lazy 和 eager,分别为延迟加载和积极加载, **
在resources 下新建mapper.xml
按结果嵌套处理
db.propers
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8 username=root password=123456
logger
log4j.rootLogger=DEBUG,console,file #控制台输出的相关设置 log4j.appender.console = org.apache.log4j.ConsoleAppender log4j.appender.console.Target = System.out log4j.appender.console.Threshold=DEBUG log4j.appender.console.layout = org.apache.log4j.PatternLayout #log4j.appender.console.layout.ConversionPattern=[%c]-%m%n log4j.appender.console.layout.ConversionPattern=%5p [%t] - %m%n #文件输出的相关设置 log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File=./log/rzk.log log4j.appender.file.MaxFileSize=10mb log4j.appender.file.Threshold=DEBUG log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=[%p][%d{yy-MM-dd}][%c]%m%n #日志输出级别 log4j.logger.org.mybatis=DEBUG log4j.logger.java.sql=DEBUG log4j.logger.java.sql.Statement=DEBUG log4j.logger.java.sql.ResultSet=DEBUG log4j.logger.java.sql.PreparedStatement=DEBUG
mybatis-config.xml
测试结果
总结
查询和结果处理的区别:查询需要查询多条数据,而按结果处理只需要一条sql语句就可以完成1.关联 - association [多对一]2.集合 - collection [一对多]3.javaType & ofType1.javaType用来指定实体类中属性的类型2.ofType 用来指定映射到List或者集合中的pojo类型,泛型中约束类型
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~