AND stu_name like '%#{stu_name}%'
时间: 2023-12-18 14:02:07 浏览: 75
在 SQL 语句中使用变量时,应该使用占位符,而不是直接将变量嵌入到 SQL 语句中。这是为了防止 SQL 注入攻击,并提高 SQL 的执行效率。如果在使用 MyBatis 等 ORM 框架时,可以使用 #{} 来表示占位符,例如:
```
AND stu_name like '%${stu_name}%'
```
需要改为:
```
AND stu_name like concat('%', #{stu_name}, '%')
```
这样,在执行 SQL 语句时,MyBatis 会自动将 stu_name 的值替换到占位符 #{stu_name} 的位置上,从而避免了 SQL 注入攻击的风险。
相关问题
AND stu_name like '%#{stu_name}%' 纠错
在 SQL 语句中使用变量时,应该使用占位符,而不是直接将变量嵌入到 SQL 语句中。这是为了防止 SQL 注入攻击,并提高 SQL 的执行效率。
对于给定的 SQL 语句:
```
AND stu_name like '%#{stu_name}%'
```
应该使用占位符来代替变量,例如:
```
AND stu_name like concat('%', ?, '%')
```
在执行 SQL 语句时,将变量作为参数传递给 SQL 引擎,即可完成动态模糊查询。
前端传来的搜索条件 1. pageNum: 1 2. pageSize: 20 3. schoolId: 12 4. clockTime_begin: 2023-08-02 5. clockTime_end: 2023-08-03 ``` <select id="selectAttStudentRecordList" parameterType="AttStudentRecord" resultMap="AttStudentRecordResult"> <include refid="selectAttStudentRecordVo"/> <where> <if test="schoolId != null "> and school_id = #{schoolId}</if> <if test="parentId != null "> and parent_id = #{parentId}</if> <if test="studentId != null "> and student_id = #{studentId}</if> <if test="stuName != null and stuName != ''"> and stu_name like concat('%', #{stuName}, '%')</if> <if test="stuNo != null and stuNo != ''"> and stu_no = #{stuNo}</if> <if test="cardNo != null and cardNo != ''"> and card_no = #{cardNo}</if> <if test="clockType != null "> and clock_type = #{clockType}</if> <if test="imgUrl != null and imgUrl != ''"> and img_url = #{imgUrl}</if> <if test="clock_time != null" > and clock_time =#{clockTime}</if> <if test="channelName != null and channelName != ''"> and channel_name like concat('%', #{channelName}, '%')</if> <if test="deviceId != null "> and device_id = #{deviceId}</if> <if test="tenantId != null "> and tenant_id = #{tenantId}</if> and del_flag = 0 </where> </select> 我在xml文件中的where要怎么写
你可以根据前端传来的搜索条件,在XML文件的`<where>`标签中编写相应的条件语句。以下是根据你提供的搜索条件示例的XML代码示例:
```xml
<select id="selectAttStudentRecordList" parameterType="AttStudentRecord" resultMap="AttStudentRecordResult">
<include refid="selectAttStudentRecordVo" />
<where>
<if test="schoolId != null ">and school_id = #{schoolId}</if>
<if test="clockTime_begin != null ">and clock_time >= #{clockTime_begin}</if>
<if test="clockTime_end != null ">and clock_time <= #{clockTime_end}</if>
and del_flag = 0
</where>
</select>
```
以上示例中,根据前端传来的搜索条件,我仅添加了`schoolId`和`clockTime`的判断条件。你可以根据需要添加其他条件,如`pageNum`、`pageSize`等。
请注意,示例中使用了`>=`和`<=`来表示大于等于和小于等于的比较操作符,这是因为XML文件中需要使用实体编码来表示特殊字符。
希望这能帮到你!如果有任何进一步的问题,请随时问我。
阅读全文