`

java通过数据库表名自动生成实体类

    博客分类:
  • j2se
 
阅读更多

//生产类

 

package com.yangtb.creatclass;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ParameterMetaData;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
/**
 * 类:创建实体
 * 通过表名,创建一个实体
 * @author Yang 杨天兵
 *时间:20090409
 */
public class CreatClass extends Sql2000 {
 
 //包名
 String strpackage ="";
 // 数据库表名
 String tableName="";
 
 StringBuffer sb = new StringBuffer();
 Connection con = null;
 
 ResultSet res = null;
 ResultSetMetaData rsmd =null;
 
 public String getTableName() {
  return tableName;
 }

 public void setTableName(String tableName) {
  this.tableName = tableName;
 }
 
 public String getStrpackage() {
  return strpackage;
 }

 public void setStrpackage(String strpackage) {
  this.strpackage = strpackage;
 }

 public void execute() throws   IOException{
  con = getCoonnection();
  String strsql="select * from "+tableName;
  Statement st;
  try {
   
   st = con.createStatement();
   
    res = st.executeQuery(strsql);
   
    rsmd = res.getMetaData();
   String newstrpack = "";
   newstrpack = strpackage.replace(".", "/");
   System.out.println(newstrpack);
   //类名
   String className = tableName.substring(0, 1).toUpperCase()+tableName.substring(1);
   //创建这个类文件strpackage
   File file = new File("src"+"/"+newstrpack+"/"+className+".java");
   sb.append("package "+strpackage+";/n");
   sb.append("");
   sb.append("/*/n *");
   sb.append("这是一个类:/n *@author yangtianb/n *//n");
   sb.append("public class "+className+" {");
   
   sb.append("/n");
   for(int i=1;i<rsmd.getColumnCount();i++){
    String type = typename(rsmd.getColumnTypeName(i));
    //打印属性
    sb.append("/tprivate/t");
    sb.append(type+"/t");
    sb.append(rsmd.getColumnName(i)+";");
    sb.append("/n");
    //打印get方法
    sb.append("/t//get方法/n");
    sb.append("/tpublic/t"+type+"/tget"+rsmd.getColumnName(i)+"(){/n");
    sb.append("/t/treturn "+rsmd.getColumnName(i)+";/n/t/n");
    sb.append("}/n");
    //打印set方法
    sb.append("/t//set方法/n");
    //
    sb.append("/tpublic/t"+type+"/tset"+rsmd.getColumnName(i)+"("+type+"/t"+rsmd.getColumnName(i)+")"+"{/n");
    sb.append("/treturn/tthis."+rsmd.getColumnName(i)+"/t = "+rsmd.getColumnName(i)+";/n");
    sb.append("}/n");
   }
   sb.append("}");
   String strsb = sb.toString();
    //创建一个FileWriter对象
   FileWriter fw = new FileWriter(file);
   //创建一个BufferedWriter对象
   BufferedWriter bw = new BufferedWriter(fw);
   bw.write(strsb);
   bw.newLine();
  //关闭文件流
   bw.flush();
   fw.close();
 
  } catch (SQLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }finally{
   //关闭数据库连接
   closeResultSet(res);
   closeConneciton(con);
  }
  
  System.out.println(sb);
 }
 
 public String typename(String typename){
  
  String tystr=null;
  if(typename.equals("varchar")){
   tystr="String";
  }
  if(typename.equals("int")){
   tystr="int";
  }
  else{
   tystr="Object";
  }
  return tystr;
 }
 
 
}

 

在上面工程中的类,以后在其他工程中导入这个类,在写入xml传入参数就能得到相应数据库表名的实体

 

//build.xml

 

<?xml version="1.0"?>

<project name="project" default="default">
 
    <target name="default" depends="depends" description="--> description">
        <taskdef name="test" classname="com.yangtb.creatclass.CreatClass"></taskdef>
     <test tableName="Bloginfo" strpackage="entity"></test>
    </target>
    <target name="depends">
    </target>
</project>

 

记得导入

分享到:
评论

相关推荐

    利用JAVA反射,读取数据库表名,自动生成对应实体类的操作

    这种操作可以自动根据表名生成实体类,具有很好的参考价值和实用性。 描述分析: 该描述主要强调了本文的主要内容,即利用JAVA反射机制读取数据库表名,并自动生成对应实体类的操作。同时还提到本文具有很好的参考...

    Java 根据数据库表名生产mapper和模型类

    2. **Model类生成**:基于获取的元数据,我们可以自动生成对应的Java实体类,即Model类。每个字段对应数据库表中的一个列,字段类型应与数据库列的数据类型相对应。可以使用模板引擎,如FreeMarker或Velocity,生成...

    JAVA SQLite 自动生成实体类 源码

    本项目提供的"JAVA SQLite 自动生成实体类 源码"是一个实用工具,它能够帮助开发者自动生成与SQLite数据库表结构对应的Java实体类,从而简化数据操作的代码编写工作。 首先,我们来理解这个工具的工作原理。当...

    逆向生成工具,有数据库表生成java bean实体类

    这个XML文件包含了工具所需的参数,如数据库连接信息(包括数据库URL、用户名和密码)、需要逆向生成的数据库表名以及生成实体类的相关设置。例如,你可以指定实体类的包名、类名前缀、是否生成getter和setter方法、...

    mysql自动生成实体类

    "mysql自动生成实体类"就是这样一个工具,它能够帮助开发者快速地根据MySQL中的表结构生成对应的Java实体类,极大地减少了手动编写代码的工作量。 生成实体类的主要目的是实现对象关系映射(Object-Relational ...

    java根据数据库自动生成vo 类

    使用Hibernate的逆向工程工具,如`hibernate-tools`,可以快速从数据库中生成实体类。这个过程包括读取数据库模式,创建Java类,并自动添加字段、getter、setter方法以及注解。 2. MyBatis: MyBatis 提供了`...

    MySQL表自动生成Java实体类

    本主题主要讲解如何利用工具或自定义脚本将MySQL数据表自动生成对应的Java实体类,提高开发效率。 首先,我们需要理解Java实体类的基本概念。在Java世界中,实体类通常用于ORM(对象关系映射)框架,如Hibernate或...

    java从数据库表反射出实体类,自动生成实体类

    根据提供的文件信息,我们可以深入探讨如何使用Java编程语言来实现从数据库表中自动反射并生成实体类的功能。这种技术在实际开发中非常有用,尤其是在快速搭建项目基础结构时,能够大大减少手动编码的工作量。 ### ...

    根据数据库生成实体类的一个工具

    标题提到的“根据数据库生成实体类的一个工具”是一种自编写的程序,旨在自动化这个过程。开发者通常会为每个数据库表创建一个对应的JavaBean类,手动编写字段、getter和setter方法以及相关的注解。这种工具可以显著...

    根据数据库自动生成实体类

    1.打开控制台,net start mysql 2.java Table2Class 数据库名 表名 操作方式 3.java:代表生成实体类,生成到桌面上 insert:插入 update:修改

    java根据数据库表或视图创建实体

    3. **反射API**:这个工具可能使用了Java的反射机制来动态获取数据库表的信息,如字段名、类型等,并根据这些信息自动生成实体类的源代码。反射允许在运行时检查类、接口、字段和方法的信息,甚至可以动态地调用方法...

    java使用mybits自动生成实体和dao层的工具.rar

    针对这一问题,"java使用mybits自动生成实体和dao层的工具" 提供了解决方案,它可以帮助开发者通过配置快速生成所需的代码,极大地提高了开发效率。 MyBatis Generator(MBG)是MyBatis官方提供的一个代码生成工具...

    sql server数据库表自动转换成java实体类

    给一个表名,自动生成java实体类,方便实用容易上手。前提,表中至少有一条数据。

    mybatis根据数据库自动生成实体类,映射类,dao

    本教程将详细讲解如何利用MyBatis的代码生成器(Generator)根据数据库自动生成实体类、映射类以及DAO接口,以提升开发效率。 首先,我们需要了解MyBatis Generator的基本概念。Generator是MyBatis提供的一个工具,...

    自动生成java实体类

    你需要按照你的项目需求来编辑这个文件,包括设置数据库URL、用户名、密码以及要生成实体类的表名。 接着,`说明.txt`文件中包含了执行MBG的命令。这个命令通常是通过Java运行时环境(JRE)执行MBG的主类,并指定`...

    自动生成ibatis 实体类文件

    描述中的“只需要修改数据库名称和表名即可,能更加有效的进行生成实体类”意味着MBG可以根据用户提供的数据库信息和指定的表名自动构建实体类。这极大地简化了开发过程,使得开发者无需手动为每个数据库表创建相应...

    自动生成实体类

    这个名为"自动生成实体类"的压缩包可能包含一个工具或框架,能够根据数据库中的表结构自动生成对应的Java实体类。 首先,我们需要理解什么是Java实体类。在Java世界里,实体类通常代表数据库中的表,每个属性对应表...

    JAVA 动态生成实体类.rar

    这个"JAVA 动态生成实体类.rar"文件可能包含了一个基于MVC(Model-View-Controller)架构的解决方案,它允许开发者通过输入数据库的相关信息(如数据库名、密码和表名),自动生成对应的Java实体类。 首先,让我们...

    mybatis自动生成Java实体类和映射文件的自动生成类工具

    3. **生成实体类**:根据表的字段信息,工具会自动生成对应的Java实体类,每个字段对应类的一个属性,字段类型则转化为对应的Java类型。 4. **生成Mapper接口**:同时,工具还会创建一个Mapper接口,接口中包含与表...

    java_mybatis自动生成实体类

    在这个配置文件中,你可以指定要生成实体类的数据库表名,以及实体类的命名规则。配置完成后,通过Maven命令或Java程序运行MBG,即可自动生成对应的Java文件。 生成的实体类通常包含字段属性,每个属性对应数据库表...

Global site tag (gtag.js) - Google Analytics