其实通过逆向工程,然后去配置一些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,即可快速转换,前提是要选对(多行编辑,获取正则匹配方式选中)