首页 > 数据库 >Java如何实现数据库中表字段的下划线和驼峰式命名的Model相互转换,很方便的...

Java如何实现数据库中表字段的下划线和驼峰式命名的Model相互转换,很方便的...

时间:2022-11-09 14:08:14浏览次数:48  
标签:多行 ... Java 下划线 IDEA 编辑 Model id


Java如何实现数据库中表字段的下划线和驼峰式命名的Model相互转换,很方便的..._下划线和驼峰式命名转换

其实通过逆向工程,然后去配置一些config,就可以实现,从Table到Model的相互转换,而且,对于下划线命名的Table字段,实现驼峰式命名的Model ,有时候我们只是做个测试,或者自己基于数据的表,想快速建立Model,怎么实现呢!!

三种方式

  • 第一种 IDEA + 可多行编辑的文本编辑器
  • 第二种 简单的编辑器(除了windows自带的),正则替换
  • 第三种 IDEA插件

一、准备工作,好点的编辑器,支持多行编辑的,IDEA就可以,还有UE,Hbuilder等

1.1 先查出某张表的所有字段,copy 一下,这是下划线命名的

user_id
brief
create_time
district
email
enable
facebook_id
favourite
is_lock_time
last_login_time
nickname
pass_word
phone
photo
twitter_id
wechat_id
nick_review
photo_review
instagram_id
device
type
customer_id

复制到IDEA中,放到List中

Java如何实现数据库中表字段的下划线和驼峰式命名的Model相互转换,很方便的..._行编辑_02

启动多行编辑,IDEA中同时按住,Ctrl Shift Alt 操作鼠标上下拉,即可多行编辑,同时左边加上双引号,Ctrl一下,同时跳到右边,再加上双引号,加上逗号,就好了

Java如何实现数据库中表字段的下划线和驼峰式命名的Model相互转换,很方便的..._下划线_03

二、代码示例,基于Hutool实现

@Test
public void camelTest11() {
ArrayList<String> list = Lists.newArrayList("user_id",
"brief",
"create_time",
"district",
"email",
"enable",
"facebook_id",
"favourite",
"is_lock_time",
"last_login_time",
"nickname",
"pass_word",
"phone",
"photo",
"twitter_id",
"wechat_id",
"nick_review",
"photo_review",
"instagram_id",
"device",
"type",
"customer_id");
List<String> collect = list.stream().map(e -> StrUtil.toCamelCase(e)).collect(Collectors.toList());
System.out.println(collect);
}

输出

userId
brief
createTime
district
email
enable
facebookId
favourite
isLockTime
lastLoginTime
nickname
passWord
phone
photo
twitterId
wechatId
nickReview
photoReview
instagramId
device
type
customerId

然后再接着,复制到model中,多行编辑,就会很快完成,整个过程两分钟之内就可以完成。

第二种,一种更简单的操作方式,使用正则替换

下划线转驼峰式

[_]{1,1}([a-z]      replace     \U$1

replace(使用regix),这里不知道为什么只能一个个replace替换,不能Replace ALl操作

驼峰式转下划线

([A-Z])       replace        \_\L$1

也是一样的无法批量替换,其实也很方便的

第三种,IDEA快捷键,更方便

同上,多行编辑,选中所要转换的字符,Ctrl + Shirt + U,即可快速转换,前提是要选对(多行编辑,获取正则匹配方式选中)


标签:多行,...,Java,下划线,IDEA,编辑,Model,id
From: https://blog.51cto.com/u_15870196/5836243

相关文章