知识大全 getter setter命名规则重定义
Posted 规则
篇首语:宁给穷人一斗,不给富人一口。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 getter setter命名规则重定义相关的知识,希望对你有一定的参考价值。
奋斗到了凌晨两点半终于把最近项目需要的一个需求搞定了 因为客户端与数据库之间的一个数据服务框架命名规则不符合java的命名规则 所以这里需要做一个转换 大概功能实现了 算法方面还有待优化 package readandwrite; import java io BufferedReader; import java io BufferedWriter; import java io File; import java io FileInputStream; import java io FileWriter; import java io IOException; import java io InputStreamReader; import java util ArrayList; import java util regex Pattern; public class ReadAndWrite private static BufferedReader br; private static BufferedWriter bw; /** * @param args * @throws IOException * * 两个问题 javabean非规范命名 如开头大写 时间 Timestamp将导致的插入问题!!!!!! */ public static void main(String[] args) throws IOException File dir = new File( d:\\\\test\\\\hibernate\\\\ ) String newPath = d:\\\\test\\\\hibernate_new\\\\ ; File file = new File(newPath) if(!file exists()) file mkdir() //创建文件夹 File file[] = dir listFiles() for (int i = ; i < file length; i++) if(file[i] isDirectory()) //文件夹直接跳过 continue; String filename = file[i] getName() br = new BufferedReader(new InputStreamReader(new FileInputStream(file[i] getAbsolutePath()))) File f = new File(newPath+filename) if(f exists()) f delete() //删除旧文件 避免重复写入 f createNewFile() FileWriter fw = new FileWriter(f true) bw = new BufferedWriter(fw) if( java equals(exn(filename))) //解析实体类 String data = ; while((data = ())!=null) bw write(split(data)+ \\n ) bw flush() else if( xml equals(exn(filename))) //解析映射文件 String data = ; while((data = ())!=null) bw write(sp (data)+ \\n ) bw flush() /* * 获取文件扩展名 */ public static String exn(String filename) int k = filename lastIndexOf( ) if(k> && k<(filename length() )) return filename substring(k+ ) else return ; /*==============================================解析 java实体类======================================================*/ /* * 拆分 关键词变小写 * 规则 将带有驼峰格式的子串变小写 */ public static String split(String s) String data ; String reg = \\\\s|\\\\ |\\\\ |\\\\;|\\\\(|\\\\)|\\\\|\\\\|\\\\\\ ; String[] word = s split(reg) //java标识符 ArrayList<String> tag = new ArrayList<String>() String[] tem = s split( ) // 保存标点符号 for(int i= ; i<tem length; i++) if(tem[i] matches(reg)) tag add(tem[i]) int k = ; for (int i = ; i < word length; i++) String fw = format(word[i]) if(i < tag size()) data += fw+tag get(i) else data += fw; k = i; if(tag size() > k) for (int i = k+ ; i < tag size() i++) data += tag get(i) return data; /* * 驼峰格式子串去大写 */ public static String format(String str) String reg = ([a z]+[A Z][a z]+)* ; Pattern p = pile(reg) if(p matcher(str) matches()) return str toLowerCase() return str; /*==============================================解析 hbm xml映射文件======================================================*/ /* * 拆分 关键词变小写 * 将 组合 id name = || property name = 双引号中的属性值变小写 */ public static String sp (String str) if(ntains( <id name ) || ntains( <property name )) return split(str) return str; cha138/Article/program/Java/hx/201311/26132相关参考