- 浏览: 527390 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 871转自:http://yangshangchuan.iteye ... -
走出类加载器迷宫
2013-10-16 14:22 658这是前几天在看类加载器机制时搜到的一篇旧文,网上搜了搜 ... -
Log4j使用
2012-12-05 11:34 740... -
Java的JDBC数据库连接池实现方法
2012-09-14 10:20 707虽然J2EE程序员一般都有现成的应用服务器所带的JDBC数据库 ... -
什么是线程安全和线程不安全
2012-08-23 14:49 769什么是线程安全和线程 ... -
线程运行栈信息的获取
2012-08-23 14:49 808线程运行栈信息的获取 ... -
log4j 获取行号
2012-08-23 14:50 1126log4jjava 今天看log4j的日志,突然注意到log ... -
javassist【动态改字节码】学习三
2012-08-23 14:50 2618这里举个简单的例子,来记录下如何用CtClass创建一个类,并 ... -
javassist【动态改字节码】学习二
2012-08-22 11:53 804写了个例子。 有一个类: Java代码 package ... -
javassist[动态改字节码]学习一
2012-08-22 11:52 856前段时间为了公司里的 ... -
JVM启动参数
2012-08-22 11:51 909一、标准参数 1.-server -client 虚拟机服务器 ... -
使用javassist动态注入代码
2012-08-22 11:33 758关于java字节码的处理,目前有很多工具,如bcel,asm。 ... -
利用javaassist修改Class文件
2012-08-22 11:22 1465我们在开发中有时候会遇到这样的问题,就是使用的某个第三方包中的 ... -
JavaMail
2012-08-16 20:03 921在Java EE应用程序中,经常需要发送E-mail。Java ... -
让java变成脚本语言
2012-08-15 12:42 0今天在弄游戏的GM模块,大部分gm命令很简单,只是单纯改 ... -
JavaAgent
2012-08-13 23:43 1241-javaagent 这个JVM参数是JDK 5引进的. j ... -
在Eclipse RCP中实现控制反转(IoC)
2012-08-13 23:13 933摘要:这篇文章描述了 ... -
aop的几种实现方式
2012-08-05 21:14 9181 AOP各种的实现 AOP就是面向切面编程,我们可以从 ... -
Java编程中“为了性能”尽量要做到的一些地方
2012-07-28 21:36 573http://www.iteye.com/magazines/ ... -
java基础拾遗
2012-06-17 10:05 850. 电梯直达 楼主 发表于 2012-1-28 13: ...
相关推荐
主要介绍了利用JAVA反射,读取数据库表名,自动生成对应实体类的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
实现功能: 1.根据SQLite数据库文件,生成java实体类 可用于使用了SQLite数据的 android 或 Java项目.
1.打开控制台,net start mysql 2.java Table2Class 数据库名 表名 操作方式 3.java:代表生成实体类,生成到桌面上 insert:插入 update:修改
配置好数据库连接字符串和输出路径,自动把MySQL数据表生成相应的Java实体类。附上数据库。来源是参考别人的代码,有添加了自动获取表名的功能,不需要手动写表名,非常方便。
只需要修改数据库名称和表名即可,能更加有效的进行生成实体类
只要输入mysql数据库里面的表名运行文件就可以生成相应的实体和sql语句,包含动态sql语句.
支持oracle或mysql,输入数据库的连接信息及表名或视图名,自动根据表或视图创建实体类,非常好用的一个小程序,大大节省时间~
给一个表名,自动生成java实体类,方便实用容易上手。前提,表中至少有一条数据。
使用原生jdbc连接mysql数据库,获取所有表名,并映射成java实体类,支持spring注解。摆脱繁琐的实体类编写工作。
好用的java实体转MySQL建表语句,非常实用,不好使你找我!
2、自动生成实体Bean 3、自动生成Service、ServiceImpl 4、自动生成Controller。 生成的工具类,自动按表名分包存放. #致谢cy-security。 Generator 代码自动生成工具,是在cy-security项目中,抽取cy-gen插件,在...
使用MyBatis Generator插件自动生成映射文件,里面有案例,生成的DAO接口、mappering映射文件,实体类。只要修改表名和数据库名就可以用了
调用NEW GetClass("连接数据库属性文件","实体类保存位置(基于SRC)","DAO保存位置(基于SRC)","表名",boolean);
在封装SQL语句之前,我们得知道什么是DAO封装与实体类以及JDBC工具类的封装与连接数据库的具体流程。 封装SQL语句的好处: 封装SQL语句后就可以导包,给其他的工程使用,大大降低开发的强度,减少代码的冗余。...
.Access数据库表及表结构的访问.Access...9.生成的实体类的各个部分应该容易改动. 10.类名应该加上后缀. 11.保证Java类名首字母大写 保证Java字段名首字母小写. 12.有时系统找不到配置文件. 13.一些异常处理未加完善.
1、本工程的目的:实现mybatis的逆向工程,根据数据库的表名,动态生成,实体类、dao层、xml文件 2、本工程的功能: a、以一个简单的普通工程实现mybatis逆向工程。 b、实现java main函数右键运行创建文件。 c、...
根据数据库表自动生成实体类,接口和xml.在generator.xml相对应写上连接,表名,需要生成的包名。具体在文件有相应说明。然后cmd,切换到安装目录这个文件下,执行生成语句,也就是'生成语句.txt'文本里面的代码复制...
根据数据库生成实体类demo,设置好数据库账号密码表名,自动根据数据库生成代码的demo。注意这并非完整的项目,只是demo。给你灵感的demo。但是很方便,右键运行,生成,直接输出,不复杂,好用效果刚刚的/够50字了嘛...
生成实体类,Dao层,Biz层,Action,Jsp页面,struts.xml,applicationcontext.xml,hibernate.cfg.xml,web.xml。 支持关系映射。 若想更好的利用此软件加快开发效率,减少成本,请遵循Hibernate规范。 例如: 表必须...
支持生成实体类、Mapper接口、XML映射文件等多个文件类型; 提供图形化界面,用户友好操作,无需编写繁琐的模板代码; 可自定义生成规则,包括包路径、作者信息、日期格式等; 支持批量生成代码文件,提高开发效率;...