天天看点

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

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相互转换,很方便的...

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

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

二、代码示例,基于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快捷键,更方便