怎么用java实现驼峰命名法与数据库命名法的相互转换

怎么用java实现驼峰命名法与数据库命名法的相互转换,第1张

手敲的,给个辛苦分吧。。。

package test

import java.util.ArrayList

import java.util.List

public class Test {

public static void main(String[] args) {

//testing for data base column-key to java field

String[] dbKeys = {"id", "user_age", "user_addr_"}

Test t = new Test()

t.convertToJava(dbKeys)

System.out.println("-----------------------------------")

//testing for Java field to data base column-key

String javaFieldNames[] = {"id","userAge","userHomeAddr"}

t.getDBKey(javaFieldNames)

}

/*

 * Java field to data base column-key

 */

private void getDBKey(String... javaFieldNames){

if(javaFieldNames != null && javaFieldNames.length > 0){

for(String name : javaFieldNames){

StringBuffer buffer = new StringBuffer()

char[] array = name.toCharArray()

List<Integer> insertIndexes = new ArrayList<>()

for(int i=0i<array.lengthi++){

Character c = array[i]

if(i != 0 && Character.isUpperCase(c)){

insertIndexes.add(i)

}

}

if(insertIndexes.size() > 0){

int flag = 0

for(int j=0j<insertIndexes.size()j++){

String word = toLowercase4FirstLetter(name.substring(flag, insertIndexes.get(j)))

buffer.append(word).append("_")

flag = insertIndexes.get(j)

}

String last = toLowercase4FirstLetter(name.substring(flag))

buffer.append(last)

System.out.println(buffer.toString())

} else {

System.out.println(name)

}

}

}

}

private String toLowercase4FirstLetter(String word){

if(word != null && word.length() > 0){

String firstLetter = word.substring(0,1)

String others = word.substring(1)

return firstLetter.toLowerCase() + others

}else{

return ""

}

}

/*

 * data base column-key to java field

 */

public void convertToJava(String... dbKeys) {

if(dbKeys != null && dbKeys.length > 0){

for(String key : dbKeys){

String[] words = key.split("_")

String result = toUppercase4FirstLetter(words)

System.out.println(result)

}

}

}

private String toUppercase4FirstLetter(String... words){

StringBuffer buffer = new StringBuffer()

if(words != null && words.length > 0){

for(int i=0i<words.lengthi++){

String word = words[i]

String firstLetter = word.substring(0, 1)

String others = word.substring(1)

String upperLetter = null

if(i != 0){

upperLetter = firstLetter.toUpperCase()

} else {

upperLetter = firstLetter

}

buffer.append(upperLetter).append(others)

}

return buffer.toString()

}

return ""

}

}

怎么让数据库字段驼峰命名的方式返回出来

package test

import java.util.ArrayList

import java.util.List

public class Test {

public static void main(String[] args) {

//testing for data base column-key to java field

String[] dbKeys = {"id", "user_age", "user_addr_"}

Test t = new Test()

t.convertToJava(dbKeys)

System.out.println("-----------------------------------")

//testing for Java field to data base column-key

String javaFieldNames[] = {"id","userAge","userHomeAddr"}

t.getDBKey(javaFieldNames)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10707283.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存