JAVA-Mybatis-plus的使用

我上一篇文章写了集成,这里说下使用。

先看下官方提供了很多方法:

这里通过的CRUD满足不了时,条件构造器就派上用场了。主要提供了实体包装器,用于处理 sql 拼接,排序,实体参数查询等!

这里需要注意:使用的是数据库字段,不是Java属性!,原来使用另一款通用mapper时记得使用的是JAVA属性。

Sql拼接条件:

@RunWith(SpringRunner.class)
//SpringBootTest 是springboot 用于测试的注解,可指定启动类或者测试环境等,这里直接默认。
@SpringBootTest 
@Slf4j
public class ConditionTest {
    
    @Autowired
    IUserService userService;
    
    @Test
    public void testOne() {
        User user =  new User();
        user.setCode("101");
        user.setName("张三");
        user.insert();
        
        EntityWrapper<User> qryWrapper = new EntityWrapper<>();
        
        qryWrapper.eq(User.CODE, user.getCode());
        qryWrapper.eq(User.NAME, user.getName());
        
        //也可以直接 
//        qryWrapper.setEntity(user);
        
        //打印sql语句
        System.out.println(qryWrapper.getSqlSegment());
        
        //设置select 字段 即:select code,name from 
        qryWrapper.setSqlSelect(User.CODE,User.NAME);
        System.out.println(qryWrapper.getSqlSelect());
        
        //查询
        User qryUser = userService.selectOne(qryWrapper);
        System.out.println(qryUser);
        log.info("拼接一结束");
    }
    
    @Test
    public void testTwo() {
        User user =  new User();
        user.setCode("102");
        user.setName("李四");
        user.insert();
        
        EntityWrapper<User> qryWrapper = new EntityWrapper<>();
        qryWrapper.where("code = {0}", user.getCode())
        .and("name = {0}",user.getName())
        .andNew("status = 0");
        System.out.println(qryWrapper.getSqlSegment());
        //等等很复杂的。
        //复杂的建议直接写在xml里面了,要是非动态的话 比较xml一眼看得懂呀
        //查询
        User qryUser = userService.selectOne(qryWrapper);
        System.out.println(qryUser);
        log.info("拼接二结束");
    }

}

com.baomidou.mybatisplus.mapper.Wrapper<T>类还有很多的方法,大家可以试试。

 

 条件参数说明:

查询方式说明
setSqlSelect设置 SELECT 查询字段
whereWHERE 语句,拼接 + WHERE 条件
andAND 语句,拼接 + AND 字段=值
andNewAND 语句,拼接 + AND (字段=值)
orOR 语句,拼接 + OR 字段=值
orNewOR 语句,拼接 + OR (字段=值)
eq等于=
allEq基于 map 内容等于=
ne不等于<>
gt大于>
ge大于等于>=
lt小于<
le小于等于<=
like模糊查询 LIKE
notLike模糊查询 NOT LIKE
inIN 查询
notInNOT IN 查询
isNullNULL 值查询
isNotNullIS NOT NULL
groupBy分组 GROUP BY
havingHAVING 关键词
orderBy排序 ORDER BY
orderAscASC 排序 ORDER BY
orderDescDESC 排序 ORDER BY
existsEXISTS 条件语句
notExistsNOT EXISTS 条件语句
betweenBETWEEN 条件语句
notBetweenNOT BETWEEN 条件语句
addFilter自由拼接 SQL
last拼接在最后,例如:last("LIMIT 1")

自定义SQL使用条件构造器:

UserDao.java加入接口方法:

/**
     * 
     * @param rowBounds 分页对象 直接传入page即可
     * @param wrapper 条件构造器
     * @return
     */
    List<User> selectUserWrapper(RowBounds rowBounds, @Param("ew") Wrapper<User> wrapper);

UserMapper.xml加入对应的xml节点:

<!-- 条件构造器形式 -->
    <select id="selectUserWrapper" resultType="user">
        SELECT
        <include refid="Base_Column_List" />
        FROM USER
        <where>
            ${ew.sqlSegment}
        </where>
    </select>

测试类:

@Test
    public void testCustomSql() {
        User user = new User();
        user.setCode("703");
        user.setName("okong-condition");
        user.insert();
        
        EntityWrapper<User> qryWrapper = new EntityWrapper<>();
        qryWrapper.eq(User.CODE, user.getCode());
        
        Page<User> pageUser = new Page<>();
        pageUser.setCurrent(1);
        pageUser.setSize(10);
        
        List<User> userlist = userDao.selectUserWrapper(pageUser, qryWrapper);
        System.out.println(userlist.get(0));
        log.info("自定义sql结束");
    }

xml形式使用wrapper

UserDao.java

/**
     * 
     * @param rowBounds 分页对象 直接传入page即可
     * @param wrapper 条件构造器
     * @return
     */
    List<User> selectUserWrapper(RowBounds rowBounds, @Param("ew") Wrapper<User> wrapper);

对应的UserMapper.xml:

<!-- 条件构造器形式 -->
    <select id="selectUserWrapper" resultType="user">
        SELECT
        <include refid="Base_Column_List" />
        FROM USER
        <where>
            ${ew.sqlSegment}
        </where>
    </select>

自定义SQL语句

在一些需要多表关联时,条件构造器和通用CURD都无法满足时,还可以自行手写sql语句进行扩展。注意:这都是mybatis的用法。

以下两种方式都是改造UserDao接口。

注解形式

@Select("SELECT * FROM USER WHERE CODE = #{userCode}")
    List<User> selectUserCustomParamsByAnno(@Param("userCode")String userCode);

xml形式

List<User> selectUserCustomParamsByXml(@Param("userCode")String userCode);

同时,UserMapper.xml新增一个节点:

<!-- 由于设置了别名:typeAliasesPackage=cn.lqdev.learning.mybatisplus.samples.biz.entity,所以resultType可以不写全路径了。 -->
    <select id="selectUserCustomParamsByXml" resultType="user">
        SELECT 
        <include refid="Base_Column_List"/> 
        FROM USER 
       WHERE CODE = #{userCode}
    </select>

测试类CustomSqlTest.java

@RunWith(SpringRunner.class)
//SpringBootTest 是springboot 用于测试的注解,可指定启动类或者测试环境等,这里直接默认。
@SpringBootTest 
@Slf4j
public class CustomSqlTest {
    
    @Autowired
    UserDao userDao;
    
    @Test
    public void testCustomAnno() {
        User user = new User();
        user.setCode("101");
        user.setName("张三");
        user.insert();
        List<User> userlist = userDao.selectUserCustomParamsByAnno(user.getCode());
        //由于新增的 肯定不为null 故不判断了。
        System.out.println(userlist.get(0).toString());
        log.info("注解形式结束------");
    }
    
    @Test
    public void testCustomXml() {
        User user = new User();
        user.setCode("102");
        user.setName("李四");
        user.insert();
        List<User> userlist = userDao.selectUserCustomParamsByXml(user.getCode());
        //由于新增的 肯定不为null 故不判断了。
        System.out.println(userlist.get(0).toString());
        log.info("xml形式结束------");
    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要创建一个Spring Boot项目并整合MyBatis-Plus,你可以按照以下步骤进行操作: 1. 首先,在你的项目的pom.xml文件中添加MyBatis-Plus和MySQL驱动的依赖。你可以引用和中提供的示例代码来配置pom.xml文件。这将确保你的项目具有使用MyBatis-Plus和MySQL的必要依赖。 2. 接下来,创建一个用于定义数据库连接和其他配置的配置文件。你可以在Spring Boot的配置文件(application.properties或application.yaml)中添加以下配置信息: - 数据库连接配置:包括数据库的URL、用户名和密码等信息。 - MyBatis-Plus配置:你可以配置MyBatis-Plus的一些属性,比如自动填充、逻辑删除等。 你可以根据你的实际需求进行配置。 3. 然后,创建数据库表对应的实体类。你可以使用Java类来表示数据库表,并在类上使用注解来映射数据库字段和表。 4. 接下来,创建Mapper接口和Mapper.xml文件。Mapper接口用于定义数据库操作的方法,而Mapper.xml文件用于编写具体的SQL语句。你可以使用MyBatis-Plus的自动注入功能来简化这一过程。通过继承MyBatis-Plus提供的BaseMapper接口,你可以自动获得常见的CRUD操作方法。 5. 最后,编写业务逻辑代码并注入Mapper。在你的Service类中,你可以注入Mapper接口,并使用它来调用数据库操作方法。你可以根据你的实际需求编写其他业务逻辑代码。 运行你的Spring Boot项目后,你应该能够看到控制台输出一系列信息,表明Spring Boot项目成功整合了MyBatis-Plus。你可以参考中提供的示例代码来验证整合结果。 总结起来,创建Spring Boot项目并整合MyBatis-Plus的步骤包括:配置pom.xml文件、创建配置文件、定义实体类、创建Mapper接口和Mapper.xml文件、编写业务逻辑代码。你可以根据所提供的参考内容来详细了解每个步骤的具体实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值