当前位置: 代码网 > it编程>编程语言>Java > Mybatis many=@Many的传值问题解决

Mybatis many=@Many的传值问题解决

2025年11月28日 Java 我要评论
1. 给子查询传递一个值@select({“select * from user where username = #{username}”}) ①@results({@result(property

1. 给子查询传递一个值

@select({“select * from user where username = #{username}”}) ①
@results({
@result(
property = “id”, column = “id” ②
),
@result(
property = “rolelist”,column=“id”, ③
many = @many(select = “com.x.dt.mapper.usermapper.selectbyusernameroleid”)
)})
list selectbyname(string username);
@select({"select id from role where id in(select role_id from user_role where user_id=#{userid})"})
list<role> selectbyusernameroleid(@param("userid") string userid);

三个表
用户表: user
角色表:role
用户角色关联表:user_role

  1. ①主查询,查询得到结果;
  2. 将主查询结果里面的id字段赋给③;
  3. ③里面的id为子查询的条件,③的id与①主查询里面的数据库字段相对应;
  4. selectbyusernameroleid通过③的coulmn为查询条件。

2. 给子查询传递多个值

@mapper---------------主查询和子查询都要打上注解mapper,才可以映射过去
@select("<script>"
+ "select user_id "
+ "case "
+ "when (#{username} = '' or #{username} is null) "
+ "then null "
+ "else #{username} end as user_name"---------------------核心语句,注意这边是=不是==
+ "from sys_user  "
+ "</script>")
@results({
@result(column = "{username=user_name,userid=user_id}", property = "userlist", javatype = list.class,
many = @many(select = "com.dao.xxxdao.searchxxxbyname"))--------------------------property是查询返回映射到dto里面的变量,在column里面放置传到查多语句中的参数username,userid
})
list<xxxdto> searchxxx(@param("username") string username);---------传递过去的参数
@mapper
@select("<script>"
+ "select * "
+ "from sys_detail "
+ "<if test=\"userid!=null \"> "
+ "and user_id =#{userid} "
+ "</if> "
+ "<if test=\"username!=null and username!=\'\' \"> "
+ "and user_name=#{username} "
+ "</if> "
+ "</script>")
list<sysdetail> searchxxxbyname(map<string, string> param);------对应的参数一定要是mapper

到此这篇关于mybatis many=@many的传值问题解决的文章就介绍到这了,更多相关mybatis many=@many传值内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com