(三)mybatisPlus自定义Sql语句

简介: mybatisPlus自定义Sql语句🍅 Java学习路线:搬砖工的Java学习路线🍅 作者:程序员小王🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步🍅 欢迎点赞 👍 收藏 ⭐留言 📝🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕

前言:

能够使mybatis-plus像mybatis一样在xml中写SQL

前提是原本可以在项目中正常使用mybatis-plus

😄看mybatisPlus自定义Sql语句操作之前,建议先看

1️⃣Mybatis-plus(MP)中CRUD操作保姆级笔记

2️⃣mybatisPlus实现ActiveRecord(AR)操作笔记


四、自定义sql语句

建数据库表

5.png


实体类

@TableName(value = "dept")
public class Dept extends Model<Dept> {
    @Override
    protected Serializable pkVal() {
        return id;
    }
    /**
     * 设置表的主键,分布式id,使用了雪花算法,字符串类型
     */
   @TableId(value = "id",type = IdType.AUTO)
    private String id;
    private  String deptName;
    private String deptMobile;
    private Integer deptManager;

创建mapper

/**
 * DeptMapper是不需要使用的,MP需要使用DeptMapper获取到数据库的表的信息。
 * 如果不定义DeptMapper, MP会报错, 找不到表的定义信息
 * @author 王恒杰
 */
public interface DeptMapper extends BaseMapper<Dept> {
    /**
     * 添加
     */
    public void insertDept();
    /**
     * 通过id查询
     * @param id
     * @return
     */
   public Dept selectById(Integer id);
    /**
     * 通过姓名查询
     * @param name
     * @return
     */
   public List<Dept> selectByName(String name);
}


新建sql映射xml文件:DeptMapper.xml

 

<?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.tjcu.mapper.DeptMapper">
<!--添加-->
    <insert id="insertDept">
    insert into dept values(#{id},#{deptName},#{deptMobile},#{deptManager})
    </insert>
    <!--通过id查询-->
    <select id="selectById" resultType="com.tjcu.entity.Dept">
        select * from dept where id=#{id}
    </select>
    <!--通过姓名查询-->
    <select id="selectById" resultType="com.tjcu.entity.Dept">
        select * from dept where dept_name=#{name}
    </select>
</mapper>


配置xml文件位置:配置application.yml (注意位置一定要对整齐)

6.png


spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/plus?useSSL=false&serverTimezone=UTC
    username: root
    password: root
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: classpath*:com.tjcu/*Mapper.xml


7.png


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7EiQIxIf-1636353219615)(https://i.loli.net/2021/11/08/rgcYsnQV4i3IBpq.png)]


添加测试

 /* 
 @SuppressWarnings("all"):就是为了不让deptMapper报错
 */
@SuppressWarnings("all")
@RunWith(SpringRunner.class)
@SpringBootTest
public class DeptARTest {
    @Autowired
    private DeptMapper deptMapper;
    /**
     * 添加操作
     */
    @Test
    public void  insertDeptTest(){
        Dept dept = new Dept();
        dept.setDeptName("销售表");
        dept.setDeptMobile("1235678");
        dept.setDeptManager(2);
       deptMapper.insertDept(dept);
    }


8.png

8.png


添加日志

9.png


通过id查询

  /**
     * 查询操作
     */
    @Test
    public void  selectDeptTest(){
        Dept dept = new Dept();
        Dept dept1 = deptMapper.selectById(1);
        System.out.println(dept1);
    }


ID查询日志

10.png


通过姓名查询

 

    /**
     * 查询操作
     */
    @Test
    public void  selectDeptTest(){
        Dept dept = new Dept();
        List<Dept> depts = deptMapper.selectByName("销售表");
        System.out.println(depts);
    }


通过姓名查询日志

11.png

相关文章
|
27天前
|
SQL Java 数据库连接
【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错
【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错
|
10天前
|
SQL Java 数据库连接
MyBatis动态SQL字符串空值判断,这个细节99%的程序员都踩过坑!
本文深入探讨了MyBatis动态SQL中字符串参数判空的常见问题。通过具体案例分析,对比了`name != null and name != &#39;&#39;`与`name != null and name != &#39; &#39;`两种写法的差异,指出后者可能引发逻辑混乱。为避免此类问题,建议在后端对参数进行预处理(如trim去空格),简化MyBatis判断逻辑,提升代码健壮性与可维护性。细节决定成败,严谨处理参数判空是写出高质量代码的关键。
76 0
|
28天前
|
SQL Java 数据库连接
【YashanDB 知识库】解决 mybatis 的 mapper 文件 sql 语句结尾加分号";"报错
【YashanDB 知识库】解决 mybatis 的 mapper 文件 sql 语句结尾加分号";"报错
|
1月前
|
SQL XML Java
七、MyBatis自定义映射resultMap
七、MyBatis自定义映射resultMap
62 6
|
2月前
|
SQL XML Java
九、MyBatis动态SQL
九、MyBatis动态SQL
52 2
|
1月前
|
SQL 缓存 Java
框架源码私享笔记(02)Mybatis核心框架原理 | 一条SQL透析核心组件功能特性
本文详细解构了MyBatis的工作机制,包括解析配置、创建连接、执行SQL、结果封装和关闭连接等步骤。文章还介绍了MyBatis的五大核心功能特性:支持动态SQL、缓存机制(一级和二级缓存)、插件扩展、延迟加载和SQL注解,帮助读者深入了解其高效灵活的设计理念。
|
1月前
|
SQL XML Java
六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性
六、MyBatis特殊的SQL:模糊查询、动态设置表名、校验名称唯一性
52 0
|
3月前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
290 6
|
4月前
|
SQL XML Java
mybatis实现动态sql
MyBatis的动态SQL功能为开发人员提供了强大的工具来应对复杂的查询需求。通过使用 `<if>`、`<choose>`、`<foreach>`等标签,可以根据不同的条件动态生成SQL语句,从而提高代码的灵活性和可维护性。本文详细介绍了动态SQL的基本用法和实际应用示例,希望对您在实际项目中使用MyBatis有所帮助。
181 11
|
5月前
|
SQL 缓存 Java
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件
本文详细介绍了MyBatis的各种常见用法MyBatis多级缓存、逆向工程、分页插件 包括获取参数值和结果的各种情况、自定义映射resultMap、动态SQL
【详细实用のMyBatis教程】获取参数值和结果的各种情况、自定义映射、动态SQL、多级缓存、逆向工程、分页插件

热门文章

最新文章