整合了mybatis-plus后,就不用再xml文件里面写sql了吗

整合了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文件提供了更高的灵活性和可维护性。

博主水平有限,欢迎指正

好的,我可以帮您回答这个问题。在Spring Boot整合MyBatis Plus和DM8,可以使用MyBatis Plus提供的mapper接口和XML文件来编SQL语句。下面是具体的步骤: 1. 配置DM8数据源 在application.properties或application.yml文件中,配置DM8数据源的相关信息,例如: ``` spring.datasource.driver-class-name=com.dm.jdbc.driver.DmDriver spring.datasource.url=jdbc:dm://localhost:5236/test spring.datasource.username=username spring.datasource.password=password ``` 2. 添加MyBatis Plus依赖 在pom.xml文件中添加MyBatis Plus的依赖: ``` <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.1</version> </dependency> ``` 3. 创建Mapper接口 创建一个继承自BaseMapper的接口,例如: ``` @Mapper public interface UserMapper extends BaseMapper<User> { } ``` 4. 在XML文件中编SQL语句 在resources/mapper目录下,创建一个与Mapper接口同名的XML文件,例如UserMapper.xml,然后在XML文件中编SQL语句,例如: ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.mapper.UserMapper"> <select id="selectById" resultType="com.example.entity.User"> SELECT * FROM user WHERE id = #{id} </select> </mapper> ``` 5. 在Controller中使用Mapper接口 在Controller中注入Mapper接口,并调用其中的方法,例如: ``` @RestController public class UserController { @Autowired private UserMapper userMapper; @GetMapping("/user/{id}") public User getUserById(@PathVariable Long id) { return userMapper.selectById(id); } } ``` 这样就完成了Spring BootMyBatis Plus整合DM8,在XML文件中编SQL语句的过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑着猪看大海

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值