其实通过逆向工程,然后去配置一些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中
启动多行编辑,IDEA中同时按住,Ctrl Shift Alt 操作鼠标上下拉,即可多行编辑,同时左边加上双引号,Ctrl一下,同时跳到右边,再加上双引号,加上逗号,就好了
二、代码示例,基于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,即可快速转换,前提是要选对(多行编辑,获取正则匹配方式选中)