<collection property="children" ofType="com.lwjwlkj.mall.common.pojo.form.SelectErpProductSkuVo" column="id" select="findSkuByProdId"> <arg column="auditStatus" javaType="java.lang.Integer"/> </collection>标签arg为什么会变红
时间: 2023-07-03 18:18:05 浏览: 134
`<arg>` 标签在 Mybatis 中并不是一个合法的标签,因此在 XML 中使用它会被识别为语法错误,从而被编辑器标记为红色。这可能是你使用的编辑器对 Mybatis XML 配置文件的语法支持不完善导致的。
正确的写法应该使用 `<foreach>` 标签来传递参数,示例如下:
```
<collection property="children" ofType="com.lwjwlkj.mall.common.pojo.form.SelectErpProductSkuVo" column="id"
select="findSkuByProdId">
<foreach collection="auditStatusList" item="auditStatus" open="AND audit_status IN (" separator="," close=")">
#{auditStatus}
</foreach>
</collection>
```
其中,`<foreach>` 标签用于循环遍历传入的 `auditStatusList` 参数,并将每个元素作为 `auditStatus` 变量传入 SQL 语句中的 `IN` 条件中。在 SQL 中使用 `IN` 条件可以查询多个 `audit_status` 值对应的记录。
相关问题
<collection property="children" ofType="com.lwjwlkj.mall.common.pojo.form.SelectErpProductSkuVo" column="id" select="findSkuByProdId"/>在这个配置中再加一个auditStatus查询参数
可以在 `select` 属性中使用 SQL 的占位符语法来传递 `auditStatus` 参数,示例如下:
```
<collection property="children" ofType="com.lwjwlkj.mall.common.pojo.form.SelectErpProductSkuVo" column="id"
select="findSkuByProdId">
<arg column="auditStatus" javaType="java.lang.Integer"/>
</collection>
```
其中,`<arg>` 标签用于指定查询参数的类型和名称,`column="auditStatus"` 表示参数名称为 `auditStatus`,`javaType="java.lang.Integer"` 表示参数类型为 `Integer`。
同时,对应的 SQL 语句需要修改为加上 `WHERE` 条件,示例如下:
```
<select id="findSkuByProdId" resultMap="skuResultMap">
SELECT *
FROM sku_table
WHERE prod_id = #{id}
AND audit_status = #{auditStatus}
</select>
```
其中,`#{auditStatus}` 表示动态传入的 `auditStatus` 参数的值。
根据下面的配置信息,写出Classes,Teacher和Student这三个POJO的全部代码。<mapper namespace="com.lcb.mapping.userMapper"> <l--association—对—关联查询--> <select id="getClass" parameterType="int" resultMap="ClassesResultMap">select * from class c,teacher t where c.teacher_id=t.t_id and c.c_id=#{id} <select> <resultMap type="com.lcb.user.Classes" id="ClassesResultMap"><l--实体类的字段名和数据表的字段名映射--> <id property="id" column="c_id"/> <result property="name" column="c_name"/><association property="teacher" javaType="com.Icb.user.Teacher"><id property="id" column="t_id" l> <result property="name" column="t_name"/></association> </resultMap> <l--collection—对多关联查询--> <select id="getClass2" parameterType="int"resultMap="ClassesResultMap2"> select * from class c,teacher t,student s where c.teacher_id=t.t_idand c.c_id=s.class_id and c.c_id=#{ id} <select> <resultMap type="com.lcb.user.Classes" id="ClassesResultMap2"><id property=""id" column="c_id"/> <result property="name" column="c_name"/><association property="teacher" javaType="com.Icb.user.Teacher"><id property="id" column="t_id"l> <result property="name" column="t_name"/></association> <collection property="student" ofType="com.Icb.user.Student"><id property="id" column="s_id"/> cresult property="name" column="s_name"/></collection> </resultMap></mapper>
1. Classes POJO代码:
public class Classes {
private int id;
private String name;
private int teacherId;
private Teacher teacher;
// 省略getter和setter方法
}
2. Teacher POJO代码:
public class Teacher {
private int id;
private String name;
// 省略getter和setter方法
}
3. Student POJO代码:
public class Student {
private int id;
private String name;
private int age;
private int classId;
private Classes classes;
// 省略getter和setter方法
}
阅读全文