方法传过来的是list参数,list里面是对象
void save(List<DepartmentCustom> department);
<insert id="save" parameterType="java.util.List">
insert into tb_department (enterprise_uid, name,
parent_id, description) values
<if test="list!=null">
<foreach collection="list" item="item" separator="," >
(#{item.enterpriseUid},#{item.name},#{item.parentId},#{item.description})
</foreach>
</if>
</insert>
自关联查询
<!-- 针对菜单的父子关系,定义的树状结构ResultMap -->
<resultMap id="menuResultMap" type="com.awcloud.user.pojo.custom.MenuCustom">
<id column="id" property="id" jdbcType="BIGINT" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="menu_code" property="menuCode" jdbcType="VARCHAR" />
<result column="parent_id" property="parentId" jdbcType="BIGINT" />
<result column="url" property="url" jdbcType="VARCHAR" />
<result column="order" property="order" jdbcType="INTEGER" />
<result column="type" property="type" jdbcType="INTEGER" />
<result column="icon" property="icon" jdbcType="VARCHAR" />
<result column="description" property="description" jdbcType="VARCHAR" />
<result column="enabled" property="enabled" jdbcType="BIT" />
<!-- 查询子菜单 -->
<collection property="children" column="id" select="getChildrenMenus" />
</resultMap>
<!-- 查询特定menu的所有子菜单,返回menuResultMap -->
<select id="getChildrenMenus" parameterType="int" resultMap="menuResultMap">
select * from tb_menu where parent_id = #{id}
</select>
<!-- 查询所有顶级菜单并且带子菜单集合,返回menuResultMap -->
<select id="getTopLevelMenusWithChildren" resultMap="menuResultMap" >
select * from tb_menu where type=1 and (parent_id IS NULL or parent_id=0)
</select
>
分享到:
相关推荐
if 、where、set、trim、choose 、foreach等在mybatis中的具体用法,有具体实例可供参考,玩转mybatis
### MyBatis动态SQL语句详解 #### 一、MyBatis简介 MyBatis是一个优秀的持久层框架,它支持自定义SQL语句、存储过程以及高级映射功能。通过使用MyBatis,开发人员可以避免编写大量的JDBC代码和手动设置参数以及...
JDBC读取数据库元数据,生成JAVA实体类,SQL语句,Mybatis动态sql语句,详细内容见博客地址https://blog.csdn.net/zi971553/article/details/82862039
在实际开发过程中,我们往往需要编写复杂的SQL语句,拼接稍有不注意就会导致错误,Mybatis给开发者提供了动态SQL,大大降低了拼接SQL导致的错误。 动态标签 if标签 if标签通常用那个胡where语句,update语句,insert...
MyBatis 的动态 SQL 是一种强大的特性,它允许你在运行时根据条件构建 SQL ...动态SQL,它一般是根据用户输入或外部条件动态组合SQL语句块。动态SQL能灵活的发挥SQL强大的功能、方便解决一些其他方法难以解决的问题。
Mybatis 执行 SQL 语句的方式 Mybatis 是一个基于 Java 的持久层框架,它提供了多种方式来执行 SQL 语句。在本文中,我们将介绍三种执行 SQL 语句的方式:通过 Mapper 接口、通过 XML 配置文件、通过 SqlSession ...
附件是MyBatis 动态 SQL 示例,MyBatis 是一个持久层框架,它允许用户在 XML 文件中编写动态 SQL 语句。MyBatis 的动态 SQL 功能非常强大,它允许开发者根据运行时的条件动态地生成 SQL 语句。这使得 MyBatis 能够...
附件是MyBatis 动态SQL示例,MyBatis 是一个持久层框架,它允许用户在 XML 文件中编写动态 SQL 语句。MyBatis 的动态 SQL 功能非常强大,它允许开发者根据运行时的条件动态地生成 SQL 语句。这使得 MyBatis 能够灵活...
1. **动态SQL**:MyBatis的一个强大特性是其支持动态SQL,允许在XML映射文件或注解中构建SQL语句。比如,我们可以使用`<if>`、`<choose>`、`<when>`、`<otherwise>`、`<where>`等标签来根据条件动态地插入、删除或...
MyBatis动态SQL的强大之处在于其能够根据不同的业务场景灵活地生成SQL语句,从而提高数据库操作的效率和灵活性。通过对MyBatis动态SQL的学习和实践,开发者可以更好地应对复杂多变的应用场景,提高代码的质量和可...
在MyBatis中,动态SQL是其强大特性之一,允许开发者根据特定条件动态构建SQL语句。在本项目"mybatis-demo11-动态SQL语句.zip"中,我们将深入探讨如何在XML配置文件中使用MyBatis的动态SQL功能。 1. **什么是动态SQL...
**MyBatis动态SQL**是一种允许开发者根据不同的条件动态地构建SQL语句的功能。具体来说,它利用XML映射文件中的预定义标签如`<if>`、`<choose>`、`<when>`和`<otherwise>`等,根据传入的参数动态地生成SQL语句。这种...
MyBatis通过动态SQL映射文件或注解来将Java代码与SQL语句关联起来,它的核心功能包括SQL语句的构建、参数绑定和结果映射。在默认情况下,MyBatis并不会直接打印出执行的SQL语句,因此我们需要开启日志功能以获取这些...
在MyBatis与Spring整合的框架中,为了便于调试和性能优化,我们常常需要在日志中打印出执行的SQL语句。以下是如何在这样的环境中配置日志来显示SQL语句的详细步骤。 首先,我们需要了解MyBatis的日志实现。MyBatis...
MyBatis拦截器实践 - 在MyBatis执行SQL语句之前进行拦截处理实例 MyBatis作为一个流行的持久层框架,提供了强大的数据库交互能力,但是在某些特殊场景下,我们需要在MyBatis执行SQL语句之前进行拦截处理,这便需要...
动态SQL是MyBatis的一大特色,它使得我们能够在运行时根据条件构建SQL语句。MyBatis通过`<if>`, `<choose>`, `<when>`, `<otherwise>`, `<where>`, `<set>`, `<foreach>`等标签来实现动态SQL的构建。 1. `<if>`标签...
把 mybatis 输出的sql日志还原成完整的sql语句。 将日志输出的sql语句中的问号 ? 替换成真正的参数值。 通过 "Tools -> MyBatis Log Plugin" 菜单或快捷键 "Ctrl+Shift+Alt+O" 启用。 点击窗口左边的 "Filter" ...
动态 SQL 是 MyBatis 的一大特色,它允许我们在运行时根据条件构建 SQL 语句,极大地提高了代码的可维护性和灵活性。 动态 SQL 在 MyBatis 中主要通过 XML 映射文件或者注解来实现。在 XML 映射文件中,我们可以...
**MyBatis动态SQL**是指在执行SQL语句时可以根据条件动态地增加或删除SQL语句的部分内容。这种方式极大地提高了SQL语句的灵活性,避免了传统方式下手动拼接SQL字符串所带来的复杂性和错误风险。 #### 三、MyBatis...