`
thinkgem
  • 浏览: 580336 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

批量生成 Hibernate Dao

    博客分类:
  • Java
阅读更多
/**
 * 批量生成 Hibernate Dao
 * @author WangZhen Email: thinkgem@gmail.com
 */

package com.yuchen.test;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class BatchBuildDao {

	String filePath = "D:\\test\\src\\java\\com\\yuchen\\test\\common\\";
	String packageName = "com.yuchen.test.common";

	public BatchBuildDao() {
		List<String> classNameList = new ArrayList<String>();
		classNameList = this.getClassNameList(this.filePath + "model\\");
		String content = "";
		for (String className : classNameList) {
			content = "package " + this.packageName + ".dao;\n\n" 
					+ "import " + this.packageName + ".model." + className + ";\n\n"
					+ "public interface " + className + "Dao" + " extends HibernateDao<" + className + "> {\n\n" 
					+ "}\n";
			this.createFile(filePath + "dao\\" + className + "Dao.java", content);
			content = "package " + this.packageName + ".dao.impl;\n\n"
					+ "import " + this.packageName + ".dao." + className + "Dao;\n"
					+ "import " + this.packageName + ".model." + className + ";\n\n"
					+ "public class " + className + "DaoImpl extends HibernateDaoSupport<" + className + "> implements " + className + "Dao {\n\n"
					+ "}";
			this.createFile(filePath + "dao\\impl\\" + className + "DaoImpl.java", content);			
			content = "<bean id=\"" + className.substring(0, 1).toLowerCase() + className.substring(1) + "Dao\" class=\"" + this.packageName + ".dao.impl." + className + "DaoImpl\">\n"
					+ "    <property name=\"sessionFactory\"><ref bean=\"sessionFactory\" /></property>\n"	
					+ "</bean>\n";
			System.out.print(content);
		}
	}

	public List<String> getClassNameList(String path) {
		List<String> list = new ArrayList<String>();
		File file = new File(path);
		File[] files = file.listFiles();
		for (int i = 0; i < files.length; i++) {
			if (files[i].isFile()) {
				String fileName = files[i].getName();
				if (".java".equals(fileName
						.substring(fileName.lastIndexOf(".")))) {
					list.add(fileName.substring(0, fileName.lastIndexOf(".")));
				}
			}
		}
		return list;
	}

	public void createFile(String fileName, String content) {
		try {
			FileWriter fw = new FileWriter(fileName);
			fw.write(content);
			fw.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		new BatchBuildDao();
	}

}
 
分享到:
评论

相关推荐

    Java代码生成工具新版

    生成Hibernate POJO类,Dao类,Service类,Action类。 生成保存,删除,修改,批量保存,批量修改,批量删除,按条件查询,分页查询等功能。 生成各大主流框架配置文件及JSP页面。 一键生成整个项目,加入Jar包部署...

    Java代码生成工具(傻瓜式操作无需教程的代码生成工具) v2.0.zip

    生成hibernate pojo类,dao类,service类,action类。  生成保存,删除,修改,批量保存,批量修改,批量删除,按条件查询,分页查询等功能。  生成各大主流框架配置文件及jsp页面。  一键生成整个项目,加入...

    彻底解决hibernate常见难点.zip

    Hibernate处理1-N关系时保存技巧、Hibernate缓存机制、Hibernate批量处理数据、Hibernate三种继承映射策略、hibernate映射体系、Hibernate主键生成策略、持久层DAO设计建议、基于xml文件的bean、使用HibernateAPI在...

    Hibernate实战(第2版 中文高清版)

    第一部分 从Hibernate和EJB 3.0开始  第1章 理解对象/关系持久化   1.1 什么是持久化   1.1.1 关系数据库   1.1.2 理解SQL   1.1.3 在Java中使用SQL   1.1.4 面向对象应用程序中的持久化   1.2 范式不...

    ssh(structs,spring,hibernate)框架中的上传下载

    这是Hibernate3引入的新特性,对于包含重量级大数据的表字段,这种抽取方式提高了对大字段操作的灵活性,否则加载Tfile对象的结果集时如果总是返回fileContent,这种批量的数据抽取将可以引起数据库的"洪泛效应"。...

    java的轻量级orm工具包jdao.zip

    jdao是一个轻量级的orm工具包,通过简单配置或者连接数据库提供表名它便可以自动生成与数据库表一一对应的dao类,生成的dao类提供了与SQL无关的增删改查的功能。在复杂的查询SQL中,我建议编程人员自己编写高效的SQL...

    1000道 互联网Java架构师面试题.pdf和JAVA核心知识整理.zip

    5、MyBatis 与 Hibernate 有哪些不同? 6、#{}和${}的区别是什么? 7、当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 8、 模糊查询 like 语句该怎么写? 9、通常一个 Xml 映射文件,都会写一个 Dao 接口与...

    iBATIS实战

    11.1.1 Hibernate版本的DAO实现 194 11.1.2 JDBC版本的DAO实现 199 11.2 为其他数据源使用DAO模式 203 11.2.1 示例:为LDAP使用DAO 203 11.2.2 示例:为Web服务使用DAO 208 11.3 使用Spring DAO 209 11.3.1 编写代码...

    基于SpringJDBC的轻量级ORM框架sborm.zip

    10、提供Entity代码生成接口,Entity并非简单的pojo(尽可能不要去修改此类),引入字段常量类,方便查询的时候指定选择字段,从而更好实现查询条件的封装; 二、为什么写SBORM? 1、hibernate:过于臃肿,...

    Spring中文帮助文档

    12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用服务器中使用Hibernate的注意事项 12.3. ...

    Spring API

    12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用服务器中使用Hibernate的注意事项 12.3. ...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    2.8.6 生成响应阶段 111 2.9 利用JSF的消息 112 2.10 本章小结 116 第3章 深入使用JSF 117 3.1 JSF事件机制 118 3.1.1 Java事件模型概述 118 3.1.2 Java事件模型示例 119 3.1.3 JSF事件模型 120 3.1.4 Action事件 ...

Global site tag (gtag.js) - Google Analytics