`
thinkgem
  • 浏览: 586001 次
  • 性别: 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();
	}

}
 
分享到:
评论

相关推荐

    Hibernate泛型Dao

    此外,了解SQL语言也是必要的,虽然Hibernate可以自动生成SQL,但在某些复杂查询场景下,可能需要手动编写SQL。最后,熟悉Spring框架和其他与Hibernate整合的技术,如Spring Data JPA,能够进一步提升开发效率。

    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在...

    IDEA自动生成代码,包括PO层、DAO、SERVICE、SWAGGER注释类

    此外,为了更高效地自动化这些过程,你可以编写便捷脚本来批量生成代码。这可能涉及到编写Maven或者Gradle插件,或者使用IDEA的Live Templates和Action。在压缩包中的"便捷脚本"可能包含了这样的自动化脚本,使用时...

    小型web程序实例DAO

    当今许多Web应用程序选择使用ORM(Object-Relational Mapping)框架,如Hibernate和MyBatis,它们简化了DAO的实现。ORM框架自动处理SQL生成和结果映射,让开发者更专注于业务逻辑。 8. **安全性**: DAO模式也有...

    Hibernate3.1/3.2.jar包

    - **代码生成:** 插件可以自动生成实体类、DAO层以及Service层代码,加速开发进程。 **4. 数据持久化流程:** 1. 创建实体类并定义属性,通过注解或XML文件映射到数据库表。 2. 初始化SessionFactory,它是线程...

    北京动力节点hibernate讲义

    此外,了解Hibernate生成的SQL语句,结合数据库优化,能够进一步提升系统性能。 八、Hibernate与其他技术的集成 Hibernate可与其他Java框架如Spring、MyBatis等无缝集成。在Spring框架中,可以通过SessionFactory...

    基于JDBC实现的DAO

    - **生成Bean和配置文件**:使用工具如DAOTool自动生成与数据库表对应的Java Bean类和配置文件。 - **创建DAOFactory**:根据配置文件创建DAOFactory实例,用于获取DAO对象。 - **创建DAO**:通过DAOFactory创建...

    struts2与hibernate的整合实现数据的crud

    5. **DAO层设计**:创建Hibernate的Data Access Object(DAO)接口和实现类,这里包含对数据库的CRUD操作方法,比如使用Session对象执行SQL语句。 6. **Service层设计**:创建Service接口和实现类,将业务逻辑封装...

    java数据库增删改查操作实例(hibernate原理)

    本示例通过一个通用的DAO(Data Access Object)类,展示了如何在不依赖Hibernate等ORM框架的情况下,进行数据库的增删改查操作。这有助于理解底层的SQL执行过程,同时也提供了更灵活的控制权。 首先,DAO模式是一...

    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 范式不...

    基于structs+hibernate学生成绩管理系统

    1. `src`目录:存放Java源代码,包括Struts的Action类、Hibernate的实体类和DAO(Data Access Object)层代码。 2. `WEB-INF`目录:包含web.xml(Web应用的部署描述符)和struts-config.xml(Struts配置文件),以及...

    代码自动生成工具包

    代码自动生成是指通过自动化工具,依据预先定义好的规则或模式,批量生成符合特定需求的源代码。这通常涉及到元数据、设计模型或配置文件,这些信息被用来驱动代码生成过程。在Java领域,这种技术被广泛应用,例如在...

    HIBERNATE教程

    - 主键生成策略:Hibernate提供了多种主键生成策略,如identity, sequence, table等。 综上所述,Hibernate教程涵盖了从基本概念到实战应用的全面知识,无论你是初学者还是有经验的开发者,都能从中获益,提高在...

    hibernate-3.2框架

    2. 映射(Mapping):实体类与数据库表之间的关系通过Hibernate的映射文件(hbm.xml)或者Java注解来定义,这包括字段与列的对应、主键生成策略等。 3. 会话(Session):它是Hibernate的主要工作单元,用于在持久...

    hibernate 排错 宝典1

    具体到Hibernate场景下,可能是DAO实例、SessionFactory实例或其他依赖注入的对象未正确初始化。 **原因分析**: 这种错误的根本原因在于Spring容器未能成功创建或配置所需的bean。例如,`SessionFactory`可能因...

    hibernate源代码

    例如,Session在保存对象时,会先将其放入一级缓存(内存),当事务提交时,再批量写入数据库,提高性能。同时,Hibernate还提供了二级缓存,允许跨会话共享数据。 六、最佳实践 1. 使用SessionFactory的...

    j2ee项目实训——hibernate框架技术

    2. 批量操作:利用Hibernate的批处理功能,提高插入、更新和删除的效率。 3.延迟加载(Lazy Loading):只在真正需要时加载关联对象,避免数据冗余,节省内存。 六、最佳实践 1. 分离业务逻辑和数据访问:通过DAO...

    hibernate优化

    - **批量操作**:正确配置batch_size参数,利用Hibernate的批量更新/删除功能,减少数据库交互次数。 - **JDBC调优**:合理使用JDBC连接,如调整预加载记录数等参数,以适应不同的应用负载。 #### 结论 Hibernate...

Global site tag (gtag.js) - Google Analytics