springboot 中 mybatis constructor标签与注解的使用
时间:2019-01-22
本文章向大家介绍springboot 中 mybatis constructor标签与注解的使用,主要包括springboot 中 mybatis constructor标签与注解的使用使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
springboot 中 mybatis constructor标签与注解的使用
constructor标签与@ConstructorArgs注解就是根据构造方法构造对象"
user表:
role表:
user - entity:
public class User implements Serializable {
private Integer id;
private String name;
private Gender gender;
private List<Role> roleList;
public User(){
}
public User(Integer id, String name, Gender gender) {
this.id = id;
this.name = name;
this.gender = gender;
}
public User(Integer id, String name, Gender gender, List<Role> roleList) {
this.id = id;
this.name = name;
this.gender = gender;
this.roleList = roleList;
}
get set ......
}
role-entity
public class Role implements Serializable {
private Integer id;
private String role;
private User user;
get set ......
}
user-mapper
@Repository
public interface UserMapper {
List<User> findAll2();
}
role-mapper
@Repository
public interface RoleMapper {
@Select("select * from mk_role where user_id = #{userId}")
@Results({
@Result(column = "id", property = "id"),
@Result(column = "role", property = "role")
})
List<Role> getRoleByUserId(Integer userId);
}
user-mapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.demo.mapper.UserMapper">
<resultMap
id="userMap2"
type="user">
<constructor>
<arg column="id" javaType="Integer"/>
<arg column="name" javaType="String"/>
<arg column="gender" javaType="Gender" typeHandler="com.demo.typehandler.EnumTypeHandler"/>
<arg select="com.demo.mapper.RoleMapper.getRoleByUserId" javaType="List" column="id" />
</constructor>
<!--可与collection混用-->
<!--<collection -->
<!--property="roleList" column="id" select="com.demo.mapper.RoleMapper.getRoleByUserId"/>-->
</resultMap>
<select id="findAll2" resultMap="userMap2" >
select * from mk_user;
</select>
</mapper>
注解方式:
userMapper
@Repository
public interface UserMapper {
@Select("select * from mk_user")
@ConstructorArgs(value = {
@Arg(column = "id", javaType = Integer.class),
@Arg(column = "name", javaType = String.class),
@Arg(column = "gender", javaType = Gender.class, typeHandler = EnumTypeHandler.class),
@Arg(column = "id", javaType = List.class, select = "com.demo.mapper.RoleMapper.getRoleByUserId")
})
List<User> findAll2();
}
- Shell下制作自解压安装包,实现脚本的简单加密
- WordPress(Twenty Ten主题)文章副标题修改教程
- ipvsadm启动报错解决办法,另附ipvsadm详细参数
- Linux:mv 命令的10个实用例子
- Linux优化方法收集与整理
- 常用MySQL语句搜集整理
- ASM 翻译系列第十二弹:ASM Internal amdu - ASM Metadata Dump Utility
- 分享一个Linux无法创建文件夹,但是目录权限却显示正常的问题和解决
- 桌面白屏(Active故障)修复批处理
- ASM 翻译系列第十三弹:ASM 高级知识 - Forcing the issue
- ASM 翻译系列第十四弹:ASM Internal Rebalancing act
- DIY网站统计:WordPress排除管理员评论及精准友链数的方法
- Linux运维工程师:30道面试题整理
- ASM 翻译系列第十五弹:ASM Internal ASM File Directory
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 原创 | 详解gitignore的使用方法,让你尽情使用git add .
- 第31天:面试比 KMP 还容易被问到的匹配算法!
- 原创 | 深度学习开篇,来聊聊感知机的原理
- 算法题:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字
- 使用Java和Python解题:定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
- R语言中%||%是什么意思?
- 原创 | 你会用缓存吗?详解LRU缓存淘汰算法
- 用Java实现:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。
- Hacking with iOS: SwiftUI Edition - Hot Prospects项目(一)
- 原创 | 详解command设计模式,解耦操作和回滚
- 第32天:图解大数打印,这道题如此经典!
- Mac终端配置好的环境变量在关闭终端后失效怎么办
- R中的stack和unstack函数
- 第33期:上海自来水来自海上,回文字符串验证!
- nginx location配置