tk-mybatis使用注意事项_tkmybatis 驼峰-程序员宅基地

技术标签: SpringBoot  

1.实体类和表的映射
如果表的设计是这样的:
table_name : unit
字段1:unit_id (主键)
字段2:unit_name
而实体类是这样的:

@Table(name = "unit")
public class Unit {
    
    @Id
    private Integer unit_id;
    private String unit_name;
}

此时,实体类的属性和字段是一一对应的,这样实体类Unit直接映射到了表unit,
如果此时,表字段的命名方式为驼峰式:
table_name : unit
字段1:unitId (主键)
字段2:unitName
而实体类依然按照和表字段一一对应的写法即:

@Table(name = "unit")
public class Unit {
    
    @Id
    private Integer unitId;
    private String unitName;
}

此时程序运行会出现BadSql的异常,查看官方文档(https://gitee.com/free/Mapper/wikis/2.2-mapping?sort_id=208202),原来是tk-mybatis会默认将实体类中驼峰式命名的字段转换为_再进行映射(即camelhump的方式),如果要解决此问题,可在实体类上使用@NameStyle(Style.camelhumpAndUppercase)注解来决定使用何种方式,提供的转换方式有:

“通用 Mapper 中,默认情况下是将实体类字段按照驼峰转下划线形式的表名列名进行转换。
例如:
实体类的 userName 可以映射到表的 user_name 上。
如果想要修改默认的转换方式,可以在后续的配置中,修改 style 全局配置。”
这个注解可以在类上进行配置,优先级高于对应的 style 全局配置。

注解支持以下几个选项:

normal,                     //原值
camelhump,                  //驼峰转下划线
uppercase,                  //转换为大写
lowercase,                  //转换为小写
camelhumpAndUppercase,      //驼峰转下划线大写形式
camelhumpAndLowercase,      //驼峰转下划线小写形式
使用时,直接在类上配置即可,例如:

@NameStyle(Style.camelhumpAndUppercase)
public class Country

因此可使用@NameStyle(Style.normal)来表示类的字段与表字段对应,应注意字段的类型和名称与表保持一致,此时运行程序就不会出现sql映射出错的问题啦!

@Table(name = "unit")
@NameStyle(Style.normal)
public class Unit {
    
    @Id
    private Integer unitId;
    private String unitName;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44269312/article/details/106265636

智能推荐

ramdisk tmpfs_site:csdn.net ramdisk的概念-程序员宅基地

文章浏览阅读772次。http://www.lupaworld.com/home-space-do-blog-uid-56821-id-139835.html一)ramdisk1)概念ramdisk就是指使用一部分内存空间来模拟硬盘分区,也就是说ramdisk是一个块设备,要用mkfs格式化,才能真正使用它..ramdisk在内核2.0/2.2版本就已经支持..ramdisk设备是它不允许重新声_site:csdn.net ramdisk的概念

C语言中除法怎么取得小数_c语言如何除法得到小数-程序员宅基地

文章浏览阅读3.1w次,点赞22次,收藏23次。除了一开始用float进行定义之外,后面进行除法运算的时候要加.0,否则算出的结果电脑会自动取整~~如:3/2的结果和3.0/2的结果就不同~~因为没有定义3/2为浮点型,所以3/2自动取整,结果等于1而3.0/2,由于预先用浮点型表示其结果显然为:1.5_c语言如何除法得到小数

python+django+uwsgi+nginx+virtualenv 部署高可用的python web环境_1397981667-程序员宅基地

文章浏览阅读4.2k次。【摘要】 最近开始部署python的web环境,说实话对于python的单一站点部署还是有经验的,毕竟带团队已经多年(吹一下NB)。那么问题来了,不同版本的python环境部署还是必须了解的。今天,终于解决了python不同版本的环境配置。进入正题,我采用virtualenv 进行python环境隔离,部署不同的版本。然后在Nginx上进行反向代理,实现pythonweb环境。一、_1397981667

linux grep -a命令 grep用法-程序员宅基地

文章浏览阅读4.3k次。Linux grep _grep -a

公司电脑监控软件能看到哪些内容_公司监控员工电脑看什么-程序员宅基地

文章浏览阅读3.2k次。  想要知道公司电脑监控软件可以监控哪些内容首先要了解公司电脑监控软件都有哪些功能,下面就以易掌电脑监控为例讲解它所能监控的内容。1、电脑屏幕实时监控  易掌电脑监控软件可以让管理者可实时查看当前被管控电脑的画面情况及被控端的摄像头的画面,并且可同时观看多个电脑的画面情况。2、鼠标键盘使用频率监控  易掌可以统计员工电脑鼠标键盘使用频率,通过数据生成图表让管理者对员工的工作、空闲时间等一目了然。3、屏幕录像  将屏幕活动录制成视频,员工端电脑开机后自动录制屏幕,保存在管._公司监控员工电脑看什么

FPGA初识:四选一多路选择器实例练习_四选一多路选择器仿真文件-程序员宅基地

文章浏览阅读4.2k次,点赞10次,收藏64次。vivado初识:四选一多路选择器实例练习一、项目创建1、creat project2、确认项目名和项目位置,“√”确认生成子目录3、生成RTL项目文件,且“√”不添加特殊源文件4、根据上面的筛选项或直接输入型号,找到对应FPGA开发板5、确认信息二、编辑源文件1、添加设计源文件及顶层文件(1)设计源文件添加源文件(add sources →design sources)确认源文件名添加源文件代码module mux4_1_des(input wire [1:0]sel_四选一多路选择器仿真文件

随便推点

OVER(PARTITION BY)函数介绍_min over-程序员宅基地

文章浏览阅读6k次,点赞2次,收藏10次。问题场景    最近在项目中遇到了对每一个类型进行求和并且求该类型所占的比例,当时考虑求出每种类型的和,并在java中分别对每一种类型的和与总和相除求出所占比例。后来,想到这样有点麻烦,并且项目中持久层使用的是iBatis框架,所有考虑从SQL方面进行入手来简化这个问题。  后来SQL的解决方法就为:1 SELECT T.CHANNEL AS PATTERN,2 COUNT(T.T..._min over

zookeeper 启动正常无法进入客户端_无法进入zookeeper-client-程序员宅基地

文章浏览阅读2.8k次。./zkServer.sh status 显示正常进入客户端,./zkCli.sh -server localhost:2181无法进入客户端,仔细查看,红色的是什么鬼,里面检查hostslocalhost也是正常的,不明觉厉,不知道那错了,就一顿各种搜各种试,感谢这位博主的分享https://blog.csdn.net/qq_32447321/article/deta..._无法进入zookeeper-client

MySQL innodb_autoinc_lock_mode设置-程序员宅基地

文章浏览阅读4.1k次,点赞5次,收藏5次。转https://www.jianshu.com/p/f72b7bfa7467https://dev.mysql.com/doc/refman/8.0/en/innodb-auto-increment-handling.html国内的文章看得真是蛋疼,跟官网的文档意思差别太大。insert 语句分类insert 语句分三种类型:simple insert, bulk insert, mixed insert simple insert insert 时可以预先知道插入的行记录数量。例如_innodb_autoinc_lock_mode

实用解决当无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]_类型 异常报告 消息 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[-程序员宅基地

文章浏览阅读3.6w次,点赞43次,收藏70次。错误提示:无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]试过网上很多方案都没有用,比如导入jstl包、standard包,但都没有用。错误显示无法在web.xml中解析,在导包无果的情况下,我在想是不是tomcat版本或者jdk版本的问题。经过查看tomcat的jar包以及jdk,得出以下解决办法和原因。1.serlet和jsp对应版本不支持EL表达式或者没有开启EL表达式解决办法:EL表达式是从js_类型 异常报告 消息 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[

NDN网络学习笔记(一)——NDN基础-程序员宅基地

文章浏览阅读1w次,点赞11次,收藏46次。NDN(Named Data Networking)是用来取代IP张北川:命名数据网络(NDN)_ndn

对数性质的证明_对数的性质证明-程序员宅基地

文章浏览阅读699次。logaM+logaN=logaMNlog_aM + log_aN = log_aMNloga​M+loga​N=loga​MN (1)proof:assume: logaM=m,logaN=nlog_aM = m, log_aN = nloga​M=m,loga​N=nso: am=M,an=N⇒M⋅N=am⋅an=am+na^m = M, a^n = N \Rightarrow M \cdot N = a^m \cdot a^n = a^{m+n}am=M,an=N⇒M⋅N=am⋅an=am+nl_对数的性质证明