`
yugouai
  • 浏览: 498426 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JDBC读取数据库字段属性

阅读更多
   由于项目需要,需要从一张表中的数据复制到另一张表中。
   本来是打算使用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实体类

    JDBC读取数据库元数据,生成JAVA实体类

    自动读取mysql数据库字段并自动生成java属性和set和get方法

    在压缩包子文件的文件名称列表中,"FieldToRead--属性读写"可能表示的是一个实现此功能的具体文件,或者是一个示例,用于展示如何读取数据库字段并生成Java属性的读写方法。该文件可能是代码示例、配置文件或者是...

    数据库读取clob字段

    ### 数据库读取CLOB字段 #### 概述 在Oracle数据库中,CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型。CLOB能够容纳4GB的文本信息,适用于存储如文章、报告或者XML文档等大型文本数据。...

    Struts用JDBC的Blob字段保存和读取Oracle数据库

    Blob(Binary Large Object)是一种用于存储大量二进制数据的数据库字段类型,非常适合用来存储文件数据。本文将详细介绍如何使用Struts结合JDBC操作Oracle数据库中的Blob字段实现文件的保存和读取。 #### 代码分析...

    oracle数据库的clob大字段在jdbc中的处理方式

    以上就是通过JDBC读取Oracle数据库中CLOB字段并转换为String的基本过程。需要注意的是,由于CLOB可能包含大量数据,因此在读取时要考虑到性能和内存消耗。如果数据过大,可以考虑分块读取或使用流式处理,避免一次性...

    spark jdbc 读取并发优化

    以下将详细解析如何优化Spark中通过JDBC读取MySQL数据时的并发性能。 首先,了解Spark读取数据的默认模式是单partition操作,即并发度为1。这意味着整个数据集将会在单个partition上进行处理。这种模式在数据量不大...

    JDOM实现从数据库读取字段生成XML树

    本篇文章将深入探讨如何利用JDOM从数据库读取字段并生成XML树。 首先,让我们了解JDOM的基本概念。JDOM通过创建一个内存中的对象模型来表示XML文档,这个模型由节点(如元素、属性、文本等)组成。这使得我们可以...

    java程序读取数据库表 转为sql文件 仅供参考 不得宣传

    在Java编程环境中,读取数据库表并将其转换为SQL文件是一项常见的任务,特别是在数据迁移、备份或测试场景中。下面将详细介绍如何实现这个过程,并基于给出的标题和描述进行讲解。 1. **配置文件读取**: 首先,...

    JDBC连接实现简单学生管理系统(附数据库).zip

    // 读取其他字段... System.out.println("ID: " + id + ", Name: " + name); } ``` - `try-with-resources`语句用于确保资源(如Statement和Connection)在使用后会被正确关闭,防止内存泄漏。 5. **用户界面...

    java读取sqlserver image字段.docx

    ### Java读取SQL Server Image字段知识点详解 #### 一、背景与目的 在数据库应用开发过程中,经常会遇到需要存储图片等二进制数据的情况。SQL Server 提供了`IMAGE`类型来存储大容量的二进制数据。然而,如何有效地...

    使用JDBC访问数据库

    主要步骤包括创建数据库和表、导入MySQL驱动、处理异常以及实现基本的CRUD(创建、读取、更新、删除)操作。 #### 二、创建数据库和表 首先,在MySQL中创建一个名为`users`的表,该表包含以下字段: - `id`: int...

    jdbc 处理clob类型字段

    本主题主要探讨如何使用JDBC有效地操作Oracle数据库中的CLOB类型字段,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select)等操作。 首先,我们需要理解CLOB的基本概念。CLOB是一种数据库对象,...

    EasyExcel 并发读取文件字段并进行校验,数据写入到新文件,批量插入数据到数据库

    下面我们将详细探讨如何使用EasyExcel实现并发读取文件字段、进行数据校验、将数据写入新文件以及批量插入到数据库的操作。 1. **EasyExcel介绍** EasyExcel是一款轻量级的Java Excel处理框架,它基于NIO和内存...

    传智播客JDBC_完成对数据库的CRUD操作.rar

    本教程“传智播客JDBC_完成对数据库的CRUD操作”主要涵盖了如何利用JDBC进行数据库的基本操作,包括创建(Create)、读取(Read)、更新(Update)和删除(Delete)数据。 一、创建(Create) 创建数据通常涉及到...

    oracle中读取blob字段.doc

    在Java应用程序中读取Oracle数据库中的BLOB字段通常涉及到几个步骤:建立数据库连接、执行查询语句、获取结果集并从中提取BLOB数据,最后将这些数据写入到文件中。 ##### 3.1 加载Oracle驱动 在Java程序中使用...

    java读取数据库替换文本字段并生成新的文本

    在Java编程中,读取数据库并替换文本字段然后生成新的文本是一个常见的任务,尤其是在处理大量数据或者进行数据处理与分析的场景。以下是一些相关的知识点: 1. **JDBC(Java Database Connectivity)**:Java访问...

    利用JDBC读取mysql数据展示在listview

    在本教程中,我们将深入探讨如何使用Java的JDBC(Java Database Connectivity)接口来从MySQL数据库中读取数据,并将这些数据动态地显示在Android应用的ListView组件上,同时利用SimpleAdapter进行数据绑定。...

    JDBC:数据库操作中的日期精度丢失解决办法

    1. 数据库字段类型:不同的数据库系统对日期时间类型的精度支持不同。例如,MySQL的DATETIME类型默认只有秒级别的精度,而Oracle的TIMESTAMP可以达到纳秒级别。 2. JDBC驱动处理:某些JDBC驱动在处理Timestamp对象...

    读取数据库类写成java类

    在Java编程中,读取数据库并将其...总的来说,"读取数据库类写成java类"涉及了Java的数据库连接、SQL查询、结果集处理、对象映射以及面向对象的属性读写。理解这些概念对于开发与数据库交互的Java应用程序至关重要。

    javaweb使用JDBC对数据库进行CRUD.doc

    在Java Web开发中,JDBC(Java Database Connectivity)是Java与数据库交互的标准API,它允许Java应用程序连接并操作各种类型的数据库。本文将详细讲解如何使用JDBC对数据库执行CRUD(Create、Read、Update、Delete...

Global site tag (gtag.js) - Google Analytics