import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.lang.reflect.Field;
/**
* myeclipse出了问题,没法通过逆向工程生成配置文件,闲来无事自己写个以后可以拿来用,另外,权当练手
*
* @author LOOK
*
*/
public class CreateHbmXml {
/**
* 输入类的包名及类名,在其目录下创建xxx.hbm.xml文件
*
* @param packageName
* 类的包名
* @param className
* 类名
*/
public static void createHbmXML(String packageName, String className) {
try {
Class<?> clazz = Class.forName(packageName + "." + className);
Field[] fields = clazz.getDeclaredFields();
StringBuilder sBuilder = new StringBuilder();
sBuilder.append("<?xml version=\"1.0\"?>\n"
+ "<!DOCTYPE hibernate-mapping PUBLIC "
+ "\"-//Hibernate/Hibernate Mapping DTD 3.0//EN\" "
+ " \"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd\" > \n");
sBuilder.append("<hibernate-mapping package=\"" + packageName + "."
+ firstToLowCase(className) + "\">\n");
sBuilder.append("<class name=\"" + className + "\" table=\""
+ firstToLowCase(className) + "_\">\n");
for (Field field : fields) {
String param = field.getName();
if ("id".equals(param)) {
sBuilder.append("\t<id name=\"id\" column=\"id\"></id>\n");
} else {
sBuilder.append("\t<property name=\"" + param + "\"/>\n");
}
}
sBuilder.append(" </class>\n</hibernate-mapping>");
File directory = new File(".");
String path = directory.getCanonicalPath();
packageName = packageName.replace('.', File.separatorChar);
String fileName = className + ".hbm.xml";
path = path + File.separator + "src" + File.separator + packageName
+ File.separator + fileName;
createFile(sBuilder, className, path);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 首字母小写。ClientInfo-->clientInfo
*
* @param className
* 类名
* @return 属性名
*/
public static String firstToLowCase(String className) {
char temp[] = className.toCharArray();
temp[0] += 32;
String string = String.valueOf(temp);
return string;
}
/**
* 创建xx.hbm.xml文件
*
* @param sBuilder
* @param className
*/
public static void createFile(StringBuilder sBuilder, String className,
String path) {
File file = new File(path);
try {
if (file.exists()) {
file.delete();
file.createNewFile();
System.out.println("文件重新创建");
}
Writer out = new FileWriter(file);
out.write(sBuilder.toString());
out.close();
System.out.println("创建成功");
} catch (IOException e) {
e.printStackTrace();
}
}
}
hibernate手动创建xx.hbm.xml文件
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 最近在一边看视频学习这个框架,一遍对着视频开始敲代码,达到学以致用的地步,可就是这么一个问题,使我纠结了一小时。 ...
- 在开发过程中,hibernate的配置是较为复杂的一部分。首先,就是hibernate.cfg.xml文件的配置,...