`
wangjianjun852
  • 浏览: 50043 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

java代码 根据domain自动生成DAO层 小tool(功能有待又垒加)

 
阅读更多

   运行环境 XP MYECLIPSE8。5 JDK1。6。30


    根据提供domain 类, 自动生成其对应的DAO的 crud操作。
package com.wjj.domain;

public class User {
	private int id;
	
	private String username;
	
	private String password;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	
}





package com.wjj.generator;

import com.wjj.io.utils.IOUtil;

public class DAOGenerator {

	public static void Generate(Class clazz) throws Exception{
		StringBuilder sBuilder = new StringBuilder();
		sBuilder.append("package com.wjj.generated.dao;");
		sBuilder.append("\n");
		sBuilder.append("import " + clazz.getPackage().getName() + "."
				+ clazz.getSimpleName() + ";");
		sBuilder.append("\n");

		sBuilder.append("public class " + clazz.getSimpleName() + "DAO");
		sBuilder.append("\n");
		sBuilder.append("{");
		sBuilder.append("\n");
		GenerateInsert(clazz, sBuilder);
		GenerateDelete(clazz, sBuilder);
		GenerateUpdate(clazz, sBuilder);
		GenerateList(clazz, sBuilder);
		sBuilder.append("}");
		sBuilder.append("\n");

		IOUtil.writeStringFileToDesk(sBuilder.toString().getBytes(),clazz.getSimpleName()+"DAO");

		System.out.println("=====================");
		System.out.println(sBuilder.toString());
	}

	protected static void GenerateInsert(Class clazz, StringBuilder sBuilder) {
		sBuilder.append("public void Insert" + clazz.getSimpleName() + "("+clazz.getSimpleName()+ " " + clazz.getSimpleName().toLowerCase() +"){");
		sBuilder.append("\n");
		System.out
				.println(" you can append jdbc or hibernate or ibatis ... to here");
		sBuilder.append("}");
		sBuilder.append("\n");
	}

	protected static void GenerateDelete(Class clazz, StringBuilder sBuilder) {
		sBuilder.append("public void Delete" + clazz.getSimpleName() + "("+clazz.getSimpleName()+ " " + clazz.getSimpleName().toLowerCase() +"){");
		sBuilder.append("\n");
		System.out
				.println(" you can append jdbc or hibernate or ibatis ... to here");
		sBuilder.append("}");
		sBuilder.append("\n");
	}

	protected static void GenerateUpdate(Class clazz, StringBuilder sBuilder) {
		sBuilder.append("public void Update" + clazz.getSimpleName() + "("+clazz.getSimpleName()+ " " + clazz.getSimpleName().toLowerCase() +"){");
		sBuilder.append("\n");
		System.out
				.println(" you can append jdbc or hibernate or ibatis ... to here");
		sBuilder.append("}");
		sBuilder.append("\n");
	}

	protected static void GenerateList(Class clazz, StringBuilder sBuilder) {
		sBuilder.append("public void Query" + clazz.getSimpleName() + "(){");
		sBuilder.append("\n");
		System.out
				.println(" you can append jdbc or hibernate or ibatis ... to here");
		sBuilder.append("}");
		sBuilder.append("\n");
	}
}



package com.wjj.io.utils;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;

public class IOUtil {
	
	public static void writeStringFileToDesk(byte[] data,String fileName)throws Exception{
		File file = new File(System.getProperty("user.dir")+"\\src\\com\\wjj\\generated\\dao",fileName + ".java");
		if(!file.getParentFile().exists()){
			file.getParentFile().mkdirs();
		}
		System.out.println("file.getAbsolutePath()---> " + file.getAbsolutePath());
		OutputStream os = new FileOutputStream(file);
		os.write(data,0,data.length);
		os.close();
	}
}



package com.wjj.test;

import com.wjj.generator.DAOGenerator;

public class TestMain {
	public static void main(String[] args) throws Exception{
		Class clazz = Class.forName("com.wjj.domain.User");
		System.out.println(clazz.getSimpleName());
		DAOGenerator.Generate(clazz);
	}
}




本tool 最终将会实现通过一个domain 自动生成其 dao ,service, action 及前台页面功能。
因为工司不让上外网, 因为公司无法上外网, 无法将公司里面实现完的共布出来,只能在家里重新写一个了。。 
分享到:
评论
1 楼 w156445045 2013-10-30  
牛逼啊 哈哈。

相关推荐

    自动根据数据库生成JAVA BEAN和DAO

    3. 代码生成器:利用工具或框架(如MyBatis的generator、Hibernate的hibernate-tools等),根据数据库连接信息和表名,自动生成Java Bean和DAO类。生成器会根据表的字段生成Bean的属性,根据表的主键生成Bean的...

    java代码自动生成.txt数据文件

    例如,在生成DAO层、Service层或者Controller层的代码时,开发者只需要定义好模板,然后提供相应的实体类信息,模板引擎就会自动生成相应的Java代码。 2. **元编程(Metaprogramming)**: Java的反射API是实现元...

    jpa代码自动生成工具-springboot

    在给定的"codetool"压缩包中,很可能包含了一个这样的工具,它可以帮助我们自动生成domain(实体类)、dao(数据访问对象)、service(业务逻辑层)以及controller(控制器)等代码。这些代码通常遵循MVC(Model-...

    gen代码生成器java三层架构

    在Java中,DAO(Data Access Object)模式是常用的数据访问模式,gen代码生成器能够自动生成DAO接口和实现,以及实体类(domain),这些类直接与数据库表对应,简化了数据库操作。 4. gen代码生成器的使用:使用gen...

    数据库代码自动生成

    自动生成DataAccess层的代码可以使用诸如MyBatis Generator或Entity Framework的工具,它们能够根据实体类自动产生SQL语句和相应的DAO(Data Access Object)接口及实现,这样开发者无需手动编写SQL,减少了出错的...

    数据库表生成domain,dao,service,controller工具

    3. **生成代码**:根据选定的表,工具会自动生成对应的domain类、DAO接口及其实现、service接口及其实现,以及controller类。生成的代码通常会遵循某种约定,如包名、命名规范等。 4. **自定义模板**:高级的工具...

    powerDesigner 导出 JAVA 代码

    根据题目中的描述,我们将详细解释如何使用PowerDesigner导出JAVA代码: ##### 1. 创建类图 首先,我们需要打开PowerDesigner软件,并创建一个新的项目。在新项目中,我们可以绘制出自己的类图。在绘制类图的过程...

    mybatis框架下使用generator插件自动生成domain/mapping/mapper

    为了解决这个问题,Mybatis提供了一个强大的工具——Generator插件,它能够根据数据库表结构自动生成相应的Java代码,极大地提高了开发效率。 Mybatis Generator是一个基于Java的代码生成器,它可以生成Mybatis的...

    mybatis自动生成Dao、Mapper和Domain工具

    MyBatis Generator(MBG)是MyBatis的一个配套工具,用于自动生成MyBatis的DAO、Mapper和Domain(实体类)文件,极大地提高了开发效率,减少了手动编写这些基础代码的工作量。 MyBatis Generator通过XML配置文件...

    MySQL表自动生成Java实体类

    4. **生成Java代码**: 根据解析到的表结构,自动生成Java实体类。每个字段对应一个Java属性,数据类型需要转换成Java兼容的类型,如`VARCHAR`转`String`,`INT`转`int`等。同时,生成对应的getter和setter方法。 5....

    强悍的自动生成java代码工具.rar

    Java自动生成代码工具有很多种,它们通常基于模板引擎,根据预定义的模板和用户输入的数据来生成代码。这些工具可以生成包括但不限于实体类、DAO层、Service层、Controller层以及对应的接口和XML配置文件。这使得...

    mybatis-generator自动生成domain、dao、mapper工具(自己写,可用)

    mybatis-generator 用于自动生成domain、dao、mapper工具,自己写,进去修改数据库连接就可以使用,整合教程在:https://www.jianshu.com/p/dd67f7e75593 中,大家可以参考。

    项目model、Dao层、业务层建模工具类

    建模工具类在Dao层可能包含诸如连接管理、事务处理、SQL执行等通用功能,例如`JDBCUtils`,这是一个常用的Java JDBC辅助类,用于简化数据库连接的获取和释放,以及执行SQL语句。 `JDBCUtils`文件可能包含以下功能:...

    java代码生成器

    Java代码生成器是一种工具,主要用于自动化Java Web应用的开发过程,显著提高开发效率。通过运行这个工程,开发者能够快速地自动生成Action、Domain、Model、Filter、Services以及JSP等核心类,避免了手动编写这些...

    模型驱动下的Java代码自动生成.pdf

    首先,模型驱动下的Java代码自动生成是指采用模型驱动的方法,以领域模型和领域特定语言(Domain-Specific Language, DSL)为核心,来指导Java代码的生成。这一过程从建立领域模型开始,该模型由领域专家使用元建模...

    action层,dao层 ,service层,entity层1

    在软件开发领域,尤其是Java Web应用中,我们经常会遇到一种分层架构的设计模式,这种模式将应用程序的不同功能划分到不同的层,以便于管理和维护。标题和描述中提到的"action层,dao层,service层,entity层"是这种...

    Service层和DAO层解析

    Service层和DAO层是软件开发中常见的两种设计模式,主要用于分离业务逻辑和数据访问操作。在Java Web开发中,它们通常被应用于三层架构或MVC(Model-View-Controller)模型中。 DAO(Data Access Object)层是负责...

    代码生成器Mgicode生成器JAVA代码生成器

    90%以上代码可以生成验证、生成三层代码、生成完善的权限系统、生成数据库等功能 功能之强大用了就知道! 两年前,我负责指导Java方向实训,在最后评审准备过程,.Net组负责人要求Java和.Net的归结一起统一评审,...

Global site tag (gtag.js) - Google Analytics