由于项目需要,需要从一张表中的数据复制到另一张表中。
本来是打算使用Hibernate的O/R映射,因为Hibernate能够将JavaBean映射成数据库表,现在把这个过程逆转过来,将数据库表反映射成JavaBean,在网上找了很多资料,貌似没太详细的说明,如果大家有这方面的资料,请留言,大家讨论,这可能是一个比较难的问题,不过应该可以解决,这里征求一下大家的实现方法。
由于使用Hibernate的方法实现不出来,只能使用最笨的方法:
1.新建一个与待拷贝的表属性一样的表,包括字段名、字段类型、大小等的属性,这里可以使用JDBC来实现,今天测试一下,可以使用两种方法
(1)使用SQL语句来读出数据库字段属性,然后把其转了javaBean,具体实现:
select column_name,data_type from information_schema.columns where table_name = '表名';
使用查询的方法把表结构读出来,然后讲字段名和类型组合成JavaBean,通过Hibernate生成新的数据库表,这里使用JDBC查询,这里的DBInfo是保存数据库字段信息的javaBean:
public List<DBInfo> getDBDesc() throws SQLException {
List<DBInfo> list = new ArrayList<DBInfo>();
Connection conn = DBInit.getConnection();
String sql = "select column_name,data_type,character_maximum_length from information_schema.columns where table_name = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "tb_bookinfo");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
DBInfo info = new DBInfo();
info.setColumnName(rs.getString(1));
info.setDataType(rs.getString(2));
info.setCharacterMaximumLength(rs.getInt(3));
list.add(info);
}
return list;
}
(2)使用java.sql.ResultSetMetaData来读取其表结构的属性,例如:
Connection conn = DBInit.getConnection();
String sql = "select *from tb_bookinfo";
ResultSetMetaData rsmd = null;
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
rsmd = rs.getMetaData(); // 获取字段名
if (rsmd != null) {
int count = rsmd.getColumnCount();
for (int i = 1; i <= count; i++) {
System.out.println("hyqTest======" + rsmd.getColumnName(i));
rsmd.getColumnType(i);
}
这样做真的很死板,希望能提供高效方法,谢谢各位网友!
我昨天头脑发烧了,实现上述功能直接用SQL语句就行了,SQL语句如下:
create table if not exists NewDBName.NewTBName select * from OldDBName.OldTBName;
分享到:
相关推荐
JDBC读取数据库元数据,生成JAVA实体类
Struts用 JDBC Blob字段 保存和读取 Oracle 数据库 好用 试过 有详细注释
通过jdbc读取oracle数据库的clob类型的字段转换为string类型
JDBC 连接到 PostgreSQL 数据库获取数据简单例子,最小的代码实现数据库读取
在Oracle数据库存储超大文件时、以流的方式分段读取和保存,避免内存溢出。本工具类提供两个方法: 1、读取文件保存到Oracle数据库Blob字段(支持超大文件) 2、从数据库中读出大字段到文件中(分块读取)
目录: 1.实验目的 (1)掌握通过JDBC方式操作数据库的基本步骤。 (2)掌握增、删、改记录的方法。...实验题3:给student表增加一pic字段,使之能存放图片,并通过程序存入图片和读取图片。 3.实习总结
排除代码逻辑没有问题...项目编码和数据库编码格式不一致,字段值含有汉字 都改为UTF-8格式 二、解决步骤 1.查看修改数据库编码格式 Navicat查看数据库编码格式 办法 原创文章 235获赞 139访问量 11万+ 关注 私信
jsp 连接各种数据库代码及读取数据实例 在 Web 应用程序中,连接数据库是一个非常重要的步骤,而 JSP 技术正是解决这个问题的利器。本文将详细介绍如何使用 JSP 连接各种数据库,包括 MySQL、Sql Server 7.0/2000、...
java 读取表结构 mysql 数据库名: 表名: 字段描述 字段名 数据类型 是否可为空 自增 主键
基于JDBC的分批次读取源端数据库数据,并基于insert/copy方式将数据分批次写入目的数据库。支持有主键表的 增量变更同步 (变化数据计算Change Data Calculate)功能(千万级以上数据量的性能尚需在生产环境验证)
数据同步:基于JDBC的分批次读取源端数据库数据,并基于insert/copy方式将数据分批次写入目的数据库。支持有主键表的 增量变更同步 (变化数据计算Change Data Calculate)功能(千万级以上数据量的性能尚需在生产...
数据同步:基于JDBC的分批次读取源端数据库数据,并基于insert/copy方式将数据分批次写入目的数据库。支持有主键表的 增量变更同步 (变化数据计算Change Data Calculate)功能(千万级以上数据量的性能尚需在生产...
博客地址:https://blog.csdn.net/fukaiit/article/details/92853086 1. 启动后访问http://localhost:8848/code,可见... 2. 新建一个只有key和value两个字段的表code 3. 不要轻易浪费积分下载代码,没什么实质内容
数据库文件提取器 1.0 描述:使用 JavaFX 的 Java MVC 桌面应用程序 添加一名作者 技术:Java、JavaFX、JDBC 摘要:使用 JavaFX 的 Java MVC 桌面应用程序 它是什么? 该项目演示了一个 JavaFX 工具,该工具提取...
下面以程序实例说明通过JDBC操纵Oracle数据库LOB类型字段的几种情况。 先建立如下两个测试用的数据库表,Power Designer PD模型如下: 建表SQL语句为:CREATE TABLE TEST_CLOB ( ID NUMBER(3), CLOBCOL CLOB)CREATE
Java 对 BLOB 的存取 Java 对 BLOB 的存取是指使用 Java 语言对 MySQL 数据库中...在上面的示例代码中,我们使用了 JDBC API 来连接 MySQL 数据库,并使用 PreparedStatement 对象来执行插入和读取 BLOB 数据的操作。
使用原生jdbc连接mysql数据库,获取所有表名,并映射成java实体类,支持spring注解。摆脱繁琐的实体类编写工作。
我们使用了 Java 语言和 JDBC 驱动程序来实现数据的导出,并将 Image 类型数据写到文件中,然后将文件中的数据读取出来,并将其设置到 Oracle 的 CLOB 字段中。这种方法可以帮助我们实现不同数据库管理系统之间的...
恍惚之际,只好再摸出JDBC 准备拼死一搏……,说得未免有些凄凉,直接使用 JDBC进行数据库操作实际上也是不错的选择,只是拖沓的数据库访问代码,乏味的字段读取操作令人厌烦。 “半自动化”的iBATIS,却刚好解决...
属性 字段(列) object 记录 User s_User id id name name passwd passwd insert into s_user(id,name,passwd) values(?,?,?); Hibernate:ORM的中间件,或者说是实现了ORM的一个框架,对JDBC做了轻...