- 浏览: 547363 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (740)
- css (4)
- jquery (8)
- javascript (23)
- html (0)
- uml (0)
- 设计模式 (1)
- 开发工具 (14)
- json (4)
- struts 1.x (3)
- spring (3)
- hibernate (6)
- struts 2.x (17)
- JFreechart (0)
- j2se (48)
- jsp (9)
- flex (22)
- 找工作 (1)
- 技术杂谈 (18)
- 网络编程 (5)
- io流 (1)
- ORACLE (15)
- 报表 (3)
- extjs (11)
- jpbm (2)
- swing (5)
- jspereports (3)
- sql (1)
- linux (15)
- ps (1)
- storm (4)
- hbase (8)
- li (0)
- python (1)
- hive (3)
- 机器学习 (1)
- hdfs (1)
- elasticsearch (1)
- hadoop 2.2 (5)
- hadoop (1)
最新评论
-
Tristan_S:
这个有点意思
ASM -
starryskydog:
程序修改detail band部分的样式 如内容字体大小 ...
使用jasperReport实现动态表头 -
samwong:
Good, so usefule
使用YUI Compressor压缩CSS/JS -
gc715409742:
能够告诉我怎么在web项目中使用YUI Compressor? ...
使用YUI Compressor压缩CSS/JS -
JsonTeye:
您好! 我看你的代码,我现在也在做动态报表,实现功能由用户自己 ...
使用jasperreport动态生成pdf,excel,html
//生产类
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调用谷歌搜索
2013-10-19 12:50 902转自:http://yangshangchuan.iteye ... -
走出类加载器迷宫
2013-10-16 14:22 691这是前几天在看类加载器机制时搜到的一篇旧文,网上搜了搜 ... -
Log4j使用
2012-12-05 11:34 784... -
Java的JDBC数据库连接池实现方法
2012-09-14 10:20 743虽然J2EE程序员一般都有现成的应用服务器所带的JDBC数据库 ... -
什么是线程安全和线程不安全
2012-08-23 14:49 795什么是线程安全和线程 ... -
线程运行栈信息的获取
2012-08-23 14:49 833线程运行栈信息的获取 ... -
log4j 获取行号
2012-08-23 14:50 1162log4jjava 今天看log4j的日志,突然注意到log ... -
javassist【动态改字节码】学习三
2012-08-23 14:50 2669这里举个简单的例子,来记录下如何用CtClass创建一个类,并 ... -
javassist【动态改字节码】学习二
2012-08-22 11:53 839写了个例子。 有一个类: Java代码 package ... -
javassist[动态改字节码]学习一
2012-08-22 11:52 905前段时间为了公司里的 ... -
JVM启动参数
2012-08-22 11:51 948一、标准参数 1.-server -client 虚拟机服务器 ... -
使用javassist动态注入代码
2012-08-22 11:33 788关于java字节码的处理,目前有很多工具,如bcel,asm。 ... -
利用javaassist修改Class文件
2012-08-22 11:22 1504我们在开发中有时候会遇到这样的问题,就是使用的某个第三方包中的 ... -
JavaMail
2012-08-16 20:03 951在Java EE应用程序中,经常需要发送E-mail。Java ... -
让java变成脚本语言
2012-08-15 12:42 0今天在弄游戏的GM模块,大部分gm命令很简单,只是单纯改 ... -
JavaAgent
2012-08-13 23:43 1278-javaagent 这个JVM参数是JDK 5引进的. j ... -
在Eclipse RCP中实现控制反转(IoC)
2012-08-13 23:13 972摘要:这篇文章描述了 ... -
aop的几种实现方式
2012-08-05 21:14 9491 AOP各种的实现 AOP就是面向切面编程,我们可以从 ... -
Java编程中“为了性能”尽量要做到的一些地方
2012-07-28 21:36 596http://www.iteye.com/magazines/ ... -
java基础拾遗
2012-06-17 10:05 882. 电梯直达 楼主 发表于 2012-1-28 13: ...
相关推荐
这种操作可以自动根据表名生成实体类,具有很好的参考价值和实用性。 描述分析: 该描述主要强调了本文的主要内容,即利用JAVA反射机制读取数据库表名,并自动生成对应实体类的操作。同时还提到本文具有很好的参考...
2. **Model类生成**:基于获取的元数据,我们可以自动生成对应的Java实体类,即Model类。每个字段对应数据库表中的一个列,字段类型应与数据库列的数据类型相对应。可以使用模板引擎,如FreeMarker或Velocity,生成...
本项目提供的"JAVA SQLite 自动生成实体类 源码"是一个实用工具,它能够帮助开发者自动生成与SQLite数据库表结构对应的Java实体类,从而简化数据操作的代码编写工作。 首先,我们来理解这个工具的工作原理。当...
这个XML文件包含了工具所需的参数,如数据库连接信息(包括数据库URL、用户名和密码)、需要逆向生成的数据库表名以及生成实体类的相关设置。例如,你可以指定实体类的包名、类名前缀、是否生成getter和setter方法、...
"mysql自动生成实体类"就是这样一个工具,它能够帮助开发者快速地根据MySQL中的表结构生成对应的Java实体类,极大地减少了手动编写代码的工作量。 生成实体类的主要目的是实现对象关系映射(Object-Relational ...
使用Hibernate的逆向工程工具,如`hibernate-tools`,可以快速从数据库中生成实体类。这个过程包括读取数据库模式,创建Java类,并自动添加字段、getter、setter方法以及注解。 2. MyBatis: MyBatis 提供了`...
本主题主要讲解如何利用工具或自定义脚本将MySQL数据表自动生成对应的Java实体类,提高开发效率。 首先,我们需要理解Java实体类的基本概念。在Java世界中,实体类通常用于ORM(对象关系映射)框架,如Hibernate或...
根据提供的文件信息,我们可以深入探讨如何使用Java编程语言来实现从数据库表中自动反射并生成实体类的功能。这种技术在实际开发中非常有用,尤其是在快速搭建项目基础结构时,能够大大减少手动编码的工作量。 ### ...
标题提到的“根据数据库生成实体类的一个工具”是一种自编写的程序,旨在自动化这个过程。开发者通常会为每个数据库表创建一个对应的JavaBean类,手动编写字段、getter和setter方法以及相关的注解。这种工具可以显著...
1.打开控制台,net start mysql 2.java Table2Class 数据库名 表名 操作方式 3.java:代表生成实体类,生成到桌面上 insert:插入 update:修改
3. **反射API**:这个工具可能使用了Java的反射机制来动态获取数据库表的信息,如字段名、类型等,并根据这些信息自动生成实体类的源代码。反射允许在运行时检查类、接口、字段和方法的信息,甚至可以动态地调用方法...
针对这一问题,"java使用mybits自动生成实体和dao层的工具" 提供了解决方案,它可以帮助开发者通过配置快速生成所需的代码,极大地提高了开发效率。 MyBatis Generator(MBG)是MyBatis官方提供的一个代码生成工具...
给一个表名,自动生成java实体类,方便实用容易上手。前提,表中至少有一条数据。
本教程将详细讲解如何利用MyBatis的代码生成器(Generator)根据数据库自动生成实体类、映射类以及DAO接口,以提升开发效率。 首先,我们需要了解MyBatis Generator的基本概念。Generator是MyBatis提供的一个工具,...
你需要按照你的项目需求来编辑这个文件,包括设置数据库URL、用户名、密码以及要生成实体类的表名。 接着,`说明.txt`文件中包含了执行MBG的命令。这个命令通常是通过Java运行时环境(JRE)执行MBG的主类,并指定`...
描述中的“只需要修改数据库名称和表名即可,能更加有效的进行生成实体类”意味着MBG可以根据用户提供的数据库信息和指定的表名自动构建实体类。这极大地简化了开发过程,使得开发者无需手动为每个数据库表创建相应...
这个名为"自动生成实体类"的压缩包可能包含一个工具或框架,能够根据数据库中的表结构自动生成对应的Java实体类。 首先,我们需要理解什么是Java实体类。在Java世界里,实体类通常代表数据库中的表,每个属性对应表...
这个"JAVA 动态生成实体类.rar"文件可能包含了一个基于MVC(Model-View-Controller)架构的解决方案,它允许开发者通过输入数据库的相关信息(如数据库名、密码和表名),自动生成对应的Java实体类。 首先,让我们...
3. **生成实体类**:根据表的字段信息,工具会自动生成对应的Java实体类,每个字段对应类的一个属性,字段类型则转化为对应的Java类型。 4. **生成Mapper接口**:同时,工具还会创建一个Mapper接口,接口中包含与表...
在这个配置文件中,你可以指定要生成实体类的数据库表名,以及实体类的命名规则。配置完成后,通过Maven命令或Java程序运行MBG,即可自动生成对应的Java文件。 生成的实体类通常包含字段属性,每个属性对应数据库表...