整合了mybatis-plus后,就不用再xml文件里面写sql了吗
使用mybatis-plus接口
这是一个根据特定条件筛选学生信息的接口,用户可以通过姓名,年龄,性别,爱好来筛选学生,可以都选也可以都不选。这就迫使在 java 代码中添加了很多 if 语句
public List<SysStudent> queryList(SysStudent sysStudent){
LambdaQueryWrapper<SysStudent> queryWrapper = Wrappers.lambdaQuery();
if (StringUtils.isNotBlank(sysStudent.getStudentName())) {
queryWrapper.eq(SysStudent::getStudentName, sysStudent.getStudentName());
}
if (StringUtils.isNotBlank(sysStudent.getStudentHobby())) {
queryWrapper.eq(SysStudent::getStudentHobby, sysStudent.getStudentHobby());
}
if (sysStudent.getStudentAge() != null) {
queryWrapper.eq(SysStudent::getStudentAge, sysStudent.getStudentAge());
}
if (sysStudent.getStudentSex() != null) {
queryWrapper.eq(SysStudent::getStudentSex, sysStudent.getStudentSex());
}
List<SysStudent> studentList = list(queryWrapper);
return studentList;
}
使用xml文件
因为项目刚刚整合了mybatis-plus,所以极度想要用一下。。
如果在xml文件里写sql,如下:
<mapper namespace="com.ruoyi.system.mapper.SysStudentMapper">
省略部分代码
<select id="queryList" parameterType="SysStudent" resultMap="SysStudentMap">
select * from sys_student
<where>
<if test="studentName != null and studentName != ''">
and student_name like concat('%', #{studentName}, '%')
</if>
<if test="studentSex != null and studentSex != ''">
and student_sex = #{studentSex}
</if>
<if test="studentHobby != null and studentHobby != ''">
and student_hobby = #{studentHobby}
</if>
<if test="studentAge != null and studentAge != ''">
and student_age = #{studentAge}
</if>
</where>
</select>
</mapper>
写在项目中的java代码就简单多了
public List<SysStudent> queryList(SysStudent sysStudent){
List<SysStudent> studentList = sysStudentMapper.queryList(sysStudent);
return studentList;
}
总结
直接使用mybatis-plus接口的优点:
- 简洁快速: 对于简单的查询条件构建,使用MyBatis Plus提供的LambdaQueryWrapper可以非常快速地完成。
- 类型安全: 利用Java的类型系统,可以避免SQL注入问题,并且在编译阶段就能发现一些错误。
- IDE支持: 由于是在Java代码中编写,IDE的代码提示、重构等功能都可以很好地支持。
在XML文档中编写sql的优点:
- 灵活性: 对于复杂的SQL逻辑,尤其是涉及到子查询、窗口函数、存储过程等情况,XML文件提供了更大的灵活性。
- 可维护性: 将SQL逻辑从Java代码中分离出来,使得代码更易于阅读和维护。
- 复用性: 同一个SQL片段可以在多个地方被引用。
我初略的总结了一下:对于简单的查询条件构建,直接使用Java接口的方式更为快捷。而对于复杂的查询逻辑,XML文件提供了更高的灵活性和可维护性。
博主水平有限,欢迎指正
标签:xml,queryWrapper,SysStudent,plus,sysStudent,student,sql,mybatis From: https://blog.csdn.net/weixin_44023931/article/details/142591898