Java正则表达式实现表字段名和驼峰式命名转换

在开发过程中,数据表中的字段名我们通常以“_”分隔(如:user_name),而在Java的实体类中我们的字段属性通常采用驼峰式命名。这样我们就避免不了对两种格式的字段名称做转换。以下是通过正则表达式实现的两种格式的相互转换,直接上代码:

package com.tonly.test;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class CamelCaseTest {

public static void main(String[] args) {

System.out.println(camelize("user_name_type"));

System.out.println(decamelize("userNameType"));

}

/**

* 数据表字段名转换为驼峰式名字的实体类属性名

* @param tabAttr 数据表字段名

* @return 转换后的驼峰式命名

*/

public static String camelize(String tabAttr){

if(isBlank(tabAttr))

return tabAttr;

Pattern pattern = Pattern.compile("(.*)_(\\w)(.*)");

Matcher matcher = pattern.matcher(tabAttr);

if(matcher.find()){

return camelize(matcher.group(1) + matcher.group(2).toUpperCase() + matcher.group(3));

}else{

return tabAttr;

}

}

/**

* 驼峰式的实体类属性名转换为数据表字段名

* @param camelCaseStr 驼峰式的实体类属性名

* @return 转换后的以"_"分隔的数据表字段名

*/

public static String decamelize(String camelCaseStr){

return isBlank(camelCaseStr) ? camelCaseStr : camelCaseStr.replaceAll("[A-Z]", "_$0").toLowerCase();

}

/**

* 字符串是否为空

* @param cs 待检查的字符串

* @return 空:true; 非空:false

*/

public static boolean isBlank(final CharSequence cs) {

int strLen;

if (cs == null || (strLen = cs.length()) == 0) {

return true;

}

for (int i = 0; i < strLen; i++) {

if (!Character.isWhitespace(cs.charAt(i))) {

return false;

}

}

return true;

}

}

测试结果:

java 数据库 字段名 转_Java正则表达式实现表字段名和驼峰式命名转换相关推荐

  1. idea 下划线字段转驼峰_Java如何实现数据库中表字段的下划线和驼峰式命名的Model相互转换,很方便的...-Go语言中文社区...

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

  2. SQL Server2019数据库查询所有数据库名、表名、表结构、表字段、主键方法演示,执行sql提示对象名‘user_tab_columns‘、 ‘user_cons_columns‘ 无效问题解决

    SQL Server2019 数据库查询所有数据库名.表名.表结构.表字段.主键方法演示 第一章:查询方法 ① 查询所有数据库名 ② 查询所有表名方法 ③ 查询表结构.表字段方法 ④ 查询主键方法 第 ...

  3. 对应到对象 数据库驼峰_从源码角度理解Mybatis字段映射(一) - 驼峰式命名

    凯伦说,公众号ID: KailunTalk,努力写出最优质的技术文章,欢迎关注探讨. 在上篇博客-[JDBC] 处理ResultSet,构建Java对象中提到,我们需要分析Mybatis在转换Resu ...

  4. mysql中修改表字段名/字段长度/字段类型详解

    在mysql中我们对数据表字段的修改命令只要使用alter就可以了,下面我来给大家详细介绍mysql中修改表字段名/字段长度/字段类型等等一些方法介绍,有需要了解的朋友可参考. 先来看看常用的方法 M ...

  5. 修改mysql表的字段名_mysql中修改表字段名/字段长度/字段类型详解

    在mysql中我们对数据表字段的修改命令只要使用alter就可以了,下面我来给大家详细介绍mysql中修改表字段名/字段长度/字段类型等等一些方法介绍,有需要了解的朋友可参考. 先来看看常用的方法 M ...

  6. java中驼峰编码,驼峰式命名法_小驼峰式命名法编程_java中getter和setter

    人们交流靠各种语言,每行都有每行的所谓的"行话".程序员也不例外,众所周知,程序员都是用代码进行交流的.那么除了在代码中的注释之外, 程序员如何读懂别人的程序呢? 当然,程序员之间 ...

  7. oracle修改表字段名备注_Oracle修改表或者字段的注释

    转自:https://www.cnblogs.com/fx-blog/p/7132833.html 语句: comment on table 表名 is '表的注释信息'; comment on co ...

  8. 下划线与驼峰互转(数据库字段转驼峰式命名)

    一.前言 大家在日常开发过程中,肯定遇到过需要将数据库字段读出,转换为驼峰式,或者将驼峰式反解析到数据库字段的场景,小编在写代码生成工具类时,编写了驼峰与数据库字段下划线互转功能,各位可以拿走直接使用 ...

  9. oracle修改表字段名备注_oracle 增加修改删除表字段,添加修改表、以及表中字段的备注...

    添加字段的语法:alter table tablename add (column datatype [default value][null/not null],-.); 修改字段的语法:alter ...

最新文章

  1. 服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程
  2. [转]自用类库整理之SqlHelper和MySqlHelper
  3. ppt页面样式html,PPT排版:一页PPT做出8种样式
  4. 12月16日要做的事
  5. css判断不同分辨率显示不同宽度布局实现自适应宽度
  6. CentOS7下使用yum安装MariaDB
  7. union的限制, 临时表大小的优化
  8. 内部控制中对权限分配的要求、权限分配的实现方法
  9. Spark SQL External DataSource外部数据源
  10. 2017mysql下载_mysql for visual studio
  11. libiconv安装
  12. Bootstrap基础九辅助类
  13. UE5导入MetaHuman虚拟头像后,连接live link face,面部表情捕捉出错修正
  14. 【LCA】BZOJ1776-[Usaco2010 Hol]cowpol 奶牛政坛
  15. 前端学起来特别吃力,新人入前端怎么学?
  16. phpStudy的建站与踩坑,与微信公众号对接
  17. 读后感:走钢索的人---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十七)
  18. 为C1Menu for Silverlight添加动画显示效果
  19. 办公室服务器文件管理制度,办公室文件管理制度
  20. linux shell 实现整点报时

热门文章

  1. SAP ABAP里存在Java List这种集合工具类么?CL_OBJECT_COLLECTION了解一下
  2. 如何在Eclipse里方便地进行markdown文件编辑
  3. 如何通过Restful API的方式读取SAP Commerce Cloud的Product Reference
  4. how is abap.js being loaded
  5. SAP UI5里的senderActive标志位
  6. 如何处理TCPSocket客户端与服务器端连接中断后的异常
  7. ABAP Method remote comparison
  8. 某些equipment无法顺利download到CRM的原因
  9. CM: Create BAdI implementation for Webservice enabled word document
  10. 测试SAP BRF+ ruleset