拜托各位高手帮忙:
现在我的需求是这样的,根据数据库查询所有的表,根据表名动态创建一个标准的JavaBean,属性就为该表的字段,有get,set方法,我现在已经有表名、所有字段名,该表所有记录,请问该怎么动态创建?急!
现在我的需求是这样的,根据数据库查询所有的表,根据表名动态创建一个标准的JavaBean,属性就为该表的字段,有get,set方法,我现在已经有表名、所有字段名,该表所有记录,请问该怎么动态创建?急!
如果是前者,那估计是不可能的了。
如果仅生成.java文件的Bean。很多数据库影射工具都能做到了,如我们常用的MyEclipse就支持这个功能,而且不但能生成Bean,连基本的增删改查的DAO都可以自动生成。
column_name as COLUMN_NAME,
data_type as TYPE_NAME,
isnull(character_maximum_length,0) as COLUMN_SIZE
from information_schema.columns
where table_name = '"+tables+"'
利用information_schema.column查出某表的属生用java生成文件:
String createProcedure = String.valueOf(ProStr);
// .SQL
OutputStream os = new FileOutputStream(new File(filepath+procedurename+".sql"));
OutputStreamWriter osw = new OutputStreamWriter(os);
osw.write(createProcedure);
osw.close();
hibernate能做这个吧?
{
String tableName;
String[] columnNames;
String[] values; 。
}此类可以搞定所有的数据表字段(不包括LOB)
然后初始化时查出全部数据表,按表构造对象即可
{
String tableName;
String[] columnNames;
String[] values; 。
} get/set
可以变化为 get(name)
set(name,value)
很感谢,我是在自己学习Struts2+ExtJs来做一个类似于数据库管理工具的页面,填入服务器IP,username,password,dbName,就会出现一个动态的combobox,其选项就是该数据库的所有的表,至此是我已经完成的,在下拉列表选择一个表后,会出现该表的所有数据,这部分我是模仿网上的,从struts的action中传数据给ExtJs,必须是一个包含list的对象,这个list就是放的查出来的对象的,但是查出来的对象是动态生成的,对应于数据库中的一个表。说的有点乱,不过还是希望得到帮助,谢谢!
while(rs.next){
T t = new T();
t.setXXX(rs.getXXX(1));
...
}
如果是准备学反射
ResultSetMetaData肯定要用到的
另外就看API啦,要用的东西比较多