首页 > 编程语言 >MybatisPlus入门(八)MybatisPlus-DQL编程控制(下)

MybatisPlus入门(八)MybatisPlus-DQL编程控制(下)

时间:2024-11-24 16:55:49浏览次数:7  
标签:TableField MybatisPlus String 编程 private DQL import com 属性

  

  一、字段映射与表名映射


数据库表和实体类名称一样自动关联,数据库表和实体类有部分情况不一样。

问题一:表名与编码开发设计不同步,表名和实体类名称不一致。

 

 

解决办法:

在模型类上方,使用@TableName注解,通过value属性,设置当前类对应的数据库表名称。

 

 

示例代码如下:

 

package com.it.domain;
 
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
 
//lombok
@Data
@TableName("tbl_user")//
public class User {
    private Long id;
    private String name;
    @TableField(value = "pwd",select = false)
    private String password;
    private Integer age;
    private String tel;
    @TableField(exist = false)
    private Integer online;
}

 

 

问题二:表字段与编码属性设计不同步

 

 

解决办法:

在模型类属性上方,使用@TableField属性注解,通过value属性,设置当前属性对应的数据库表中的字段关系。

 

 

示例代码:

 

package com.it.domain;
 
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
 
//lombok
@Data
@TableName("tbl_user")//
public class User {
    private Long id;
    private String name;
    @TableField(value = "pwd",select = false)
    private String password;
    private Integer age;
    private String tel;
    @TableField(exist = false)
    private Integer online;
}

 


问题三:编码中添加了数据库中未定义的属性

在User实体类中定义了 是否在线属性。

 

 

 

解决办法:

在模型类属性上方,使用@TableField注解,通过exist属性,设置属性在数据库表字段中是否存在,默认为true。此属性无法与value合并使用。

 

 

示例代码:

package com.it.domain;
 
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
 
//lombok
@Data
@TableName("tbl_user")//
public class User {
    private Long id;
    private String name;
    @TableField(value = "pwd",select = false)
    private String password;
    private Integer age;
    private String tel;
    @TableField(exist = false)
    private Integer online;
}

 

 

问题四:采用默认查询开放了更多的字段查看权限

用字段列表查询,列出字段,带有索引往前排,不带索引的往后排,查询效率有一定提升。

 

 

解决办法:

在模型类属性上方,使用@TableField注解,通过select属性:设置该属性是否参与查询。此属性与select()映射配置不冲突。

 

 

示例代码:

package com.it.domain;
 
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
 
//lombok
@Data
@TableName("tbl_user")//
public class User {
    private Long id;
    private String name;
    @TableField(value = "pwd",select = false)
    private String password;
    private Integer age;
    private String tel;
    @TableField(exist = false)
    private Integer online;
}

 

 

单元测试代码:

package com.it;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  ...
   
 
@SpringBootTest
class Mybatisplus02DqlApplicationTests {
 
    @Autowired
    private UserDao userDao;
 
    @Test
    void testGetAll() {
 
        LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
        List<User> userList = userDao.selectList(lqw);
        System.out.println(userList);
 
 
    }
 
}

 

 

经过测试,字段名与表名映射成功。

标签:TableField,MybatisPlus,String,编程,private,DQL,import,com,属性
From: https://www.cnblogs.com/kongsq/p/18565969

相关文章

  • 可编程序控制器的构成和工作原理
    可编程序控制器(ProgrammableLogicController,PLC)是一种广泛应用于工业自动化控制领域的电子设备。它通过内部编程实现对生产过程的自动控制,具有高可靠性、灵活性和易于编程等特点。一、构成中央处理单元:CPU是PLC的核心部分,负责执行用户程序、处理输入信号并控制输出。它......
  • 编程之路,从0开始:文件操作(2)
            Hello大家好!很高兴我们又见面啦!给生活添点passion,开始今天的编程之路!    今天我们来继续学习C语言的文件操作。我的博客:<但凡.我的专栏:编程之路持续更新高质量内容,欢迎点赞、关注!目录1、文件的随机读写1.1fseek1.2ftell输出结果:​编辑1.......
  • shell编程for循环和while循环
    声明!学习视频来自B站up主泷羽sec有兴趣的师傅可以关注一下,也欢迎大家本人公众号:泷羽Sec-track,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!网安工具:......
  • MybatisPlus入门(七)MybatisPlus-DQL编程控制(上)
     一、查询条件设置查询条件如下图:  用户登录(eq匹配),代码示例:LambdaQueryWrapper<User>lqw=newLambdaQueryWrapper<User>();//等同于=lqw.eq(User::getName,"Jerry").eq(User::getPassword,"jerry");UserloginUser=userDao.selectOne(lqw);System.o......
  • Python编程整理汇总(基础汇总版)
    1.基础语法1.1变量与数据类型整数:a=10浮点数:b=3.14字符串:c="Hello,World!"布尔值:d=True列表:e=[1,2,3,4,5]元组:f=(1,2,3)字典:g={"name":"Alice","age":25}集合:h={1,2,3,4,5}1.2控制结构if语句:ifa>......
  • MybatisPlus入门(五)MybatisPlus条件查询
    一、MybatisPlus条件查询MyBatisPlus将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合  方式一:按条件查询查询年龄小于18的用户,代码示例:@SpringBootTestclassMybatisplusDqlApplicationTests{@AutowiredprivateUserDaouserDao;......
  • MybatisPlus入门(六)MybatisPlus-空值处理
    一、MybatisPlus-空值处理1.1)问题引入:在查询中遇到如下情况,有部分筛选条件没有值,如商品价格有最大值和最小值,商品价格部分时候没有值。  1.2)解决办法:步骤一:新建查询实体类UserQuery继承自Userpackagecom.it.domain.query;importcom.it.domain.User;importlombok.Da......
  • 【轻量级 Java Web 整合开发(第 2 版)-框架编程技术】-期末复习(第二版)
    第一章JavaWeb技术概述作业1、完成课后(P28)选择题和问答题(只需完成,不需要提交)2、Tomcat的目录结构及其用途?bin:启动/关闭应用服务器的bat批处理命令;conf:包含不同的配置文件。包括server.xml(Tomcat的主要配置文件)和为不同的Tomcat配置的web应用设置缺省值的文件we......
  • C语言嵌入式编程实战指南(二):高级技术和最佳实践
    引言在前一篇指南中,我们介绍了嵌入式系统的基础知识、C语言编程以及简单的项目开发流程。本篇将继续深入探讨高级技术主题,包括但不限于多任务编程、网络通信、硬件抽象层(HAL)的使用,以及一些实用的最佳实践建议。第一部分:高级编程技术1.1实时操作系统(RTOS)与多任务管......
  • 36. UDP网络编程
    一、什么是UDP协议  相对于TCP协议,UDP协议则是面向无连接的协议。使用UDP协议时,不需要建立连接,只需要知道对象的IP地址和端口号,就可以直接发数据包。但是,数据无法保证一定到达。虽然用UDP传输数据不可靠,但它的优点是比TCP协议的速度快。对于不要求可靠到达的数据而......