`
cguang87
  • 浏览: 1792 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

java 倒表数据

    博客分类:
  • java
阅读更多

前段时间闲着,写了写倒表的程序。本来想写个带界面的,不过java GUI真的不咋会,用web写的界面也不咋地,

就没界面了,工程里面只是最基本的功能,从Oracle倒到MySql我测试过没问题。

下面把最基本的类贴出来:

/**
	 * 倒数据,把数据从一个数据表导入另一个数据表
	 * @param conn 源数据库链接
	 * @param conn2 目的数据库链接
	 * @param tablename1 源数据库表
	 * @param tablename2 目的数据库表
	 */
	@SuppressWarnings("unchecked")
	public static void dataTranslates(Connection conn,Connection conn2,
							String tablename1,String tablename2) throws Exception {
			Statement stmt = DataConnect.getStmt(conn);
			/**
				取得当前连接数据库指定表的字段信息。
				tableName 表名称 map结构-- 
				key--表名 
				value--列名:列类型
			*/
			Map<String, String[]> frommap = getFieldList(conn,tablename1);
			//字段名:字段类型
			String[] str = null; 
			for(String key : frommap.keySet()){     
				str = frommap.get(key);     
			}   
			String[] fcolumn = new String[str.length];
			String[] fcolumntype = new String[str.length];
			for(int i = 0; i < str.length; i++) {
				fcolumn[i] = str[i].split(":")[0];
				//getType:得到int对应的Types类型
				String type = GetTypes.getType(Integer.parseInt(str[i].split(":")[1]));
				fcolumntype[i] = type.equals("Int")?"Integer":type;
			}
			//得到数据结果集
			ResultSet rs = stmt.executeQuery(spliceFromSql(fcolumn,tablename1));
			//拼接insert
			String isql = spliceToSql(fcolumn,tablename2);
			PreparedStatement pstmt = DataConnect.getPStme(conn2, isql);
			Class clazz = rs.getClass();
			Class clazz2 = pstmt.getClass();
			String[] mothods = getMethodName(fcolumntype);
			//gets方法用于取值
			Method[] gets = new Method[mothods.length];
			//sets方法用于设值
			Method[] sets = new Method[mothods.length];
			for(int i = 0; i < mothods.length; i++) {
				gets[i] = clazz.getDeclaredMethod(mothods[i].split(":")[0],
						int.class);
				if(fcolumntype[i].equals("Integer")) {
					sets[i] = clazz2.getDeclaredMethod(mothods[i].split(":")[1],
							int.class,int.class);
				} else {
					sets[i] = clazz2.getDeclaredMethod(mothods[i].split(":")[1],
							int.class,
							Class.forName("java.lang."+fcolumntype[i]));
				}
			}
			int count = 0;
			while(rs.next()) {
				//循环调用PreparedStatement的设值和ResultSet的取值方法
				for(int i = 0; i < gets.length; i++) {
					if(fcolumntype[i].equals("Integer")) {
						sets[i].invoke(pstmt, i + 1, Integer.parseInt((gets[i].invoke(rs, i+1)==null?"0":gets[i].invoke(rs, i+1)).toString()));
					} else {
						sets[i].invoke(pstmt, i + 1, (gets[i].invoke(rs, i+1)==null?"":gets[i].invoke(rs, i+1)).toString());
					}
				}
				count++;
				pstmt.addBatch();
				if(count%200==0) {
					pstmt.executeBatch();
					System.out.println("导入" + count + "条数据");
				}
			}
			//数据提交
			pstmt.executeBatch();
	}
gets[i] = clazz.getDeclaredMethod(mothods[i].split(":")[0],
						int.class);//按索引取值
oracle.jdbc.driver.OracleResultSetImpl中好像没有实现java.sql.ResultSet中的
String getString(String columnLabel)方法,所以只能按索引取值,不能按字段名取值。

 

分享到:
评论

相关推荐

    java倒计时数据

    从给定的文件信息来看,这段代码主要涉及的是使用Java Swing库来创建一个图形用户界面(GUI),用于显示倒计时功能。以下是对标题、描述、标签和部分内容中提到的知识点的详细解释: ### Java Swing库 Java Swing是...

    java 编写的倒计时程序

    7. **程序打包(JAR文件)**:`Countdown.jar`是Java应用程序的可执行文件格式,它将所有的类文件、资源文件以及元数据打包在一起,方便用户直接运行。Java的`jar`命令或者IDE(如Eclipse、IntelliJ IDEA)可以用来...

    倒计时器 java

    【倒计时器 Java】是基于Java编程语言开发的一个简单实用的小程序,它主要用于实现时间的倒计时功能。...通过研究这个程序,不仅可以掌握Java基础知识,还能了解如何设计用户友好的界面并处理实时数据更新。

    java实现倒排索引表的布尔查询

    本文将深入探讨如何使用Java实现一个简单的倒排索引表,并结合布尔查询进行文本搜索。 首先,我们需要理解倒排索引的基本概念。倒排索引是从词到文档的映射,即它将每个词关联到包含该词的所有文档的列表。这种索引...

    Java数组倒置.rar

    在Java中,数组是一种数据结构,用于存储同一类型的多个元素。数组倒置,也就是将数组中的元素顺序从后往前排列,使得原数组的第一个元素变为最后一个,最后一个元素变为第一个。这个过程可以用于各种应用场景,比如...

    java-excel-mysql互倒代码

    Java编程语言在处理数据交换时,常常涉及到与Excel和数据库如MySQL之间的数据互倒。本项目"java-excel-mysql互倒代码"提供了一个实用的解决方案,利用了两个流行的Java库:jxl和Apache POI。 jxl是一个专门用于读写...

    倒排索引java实现

    总之,倒排索引的Java实现涉及文本预处理、数据结构设计以及序列化等技术。结合IK分词器,我们可以构建一个基本的全文搜索引擎,用于快速定位文档中的关键词。这种实现方式虽然简单,但在处理大量文档时可能会面临...

    java二维数组倒置实例

    在Java编程语言中,二维数组是一种特殊的数组结构,它由多个一维数组构成,形如一个矩阵。在处理二维数组时,我们有时需要对其进行特定的操作,例如“倒置”。这里的“倒置”可以理解为对数组的行或列进行翻转。本...

    java链表实现

    在Java编程语言中,链表是一种重要的数据结构,它与数组不同,不依赖于内存中的连续空间。链表由一系列节点组成,每个节点包含数据和指向下一个节点的引用。本篇将深入探讨如何在Java中实现单链表,包括其基本操作、...

    java中Excel与mysql数据互倒

    在Java开发中,数据互倒通常指的是从MySQL数据库中导出数据到Excel文件,或者将Excel文件中的数据导入到MySQL数据库。这个过程涉及到的主要技术包括Java处理Excel的库(如Apache POI)和操作MySQL数据库的JDBC API。...

    java五分钟倒计时

    在Java编程中,实现一个五分钟倒计时的功能是一项常见的任务,尤其在网页或者GUI应用中。这个功能可以用于各种场景,比如在线考试的剩余时间提示、网页加载等待提示等。以下我们将详细介绍如何使用Java来创建这样一...

    java 倒置字符串

    在本文中,我们将深入探讨如何在Java中实现这个功能,以及使用哪种数据结构和方法可以最有效地完成这一操作。 首先,让我们了解字符串在Java中的基本概念。Java中的字符串是不可变的,这意味着一旦创建了一个`...

    JAVA倒计时器练习程序

    本项目名为"JAVA倒计时器练习程序",它提供了一个基础的实现,能够进行多组倒计时,这对于初学者来说是一个很好的实践和学习机会。 首先,我们要理解Java编程的基础。Java是一种面向对象的编程语言,由Sun ...

    java的swing实现计时与倒计时

    对于“java的swing实现计时与倒计时”这一主题,我们将探讨如何利用Swing构建一个能够输入起始时间和终止时间,并且可以执行计时和倒计时功能的应用程序。 首先,Swing中的JFrame是应用程序的主要窗口,它包含其他...

    倒计时系统.java源码

    - **JAR文件**:`倒计时系统.jar`是一个Java应用程序归档文件,包含了编译后的类文件和相关的元数据。Java的`jar`命令或IDE(如Eclipse或IntelliJ IDEA)可以生成JAR文件,使得用户可以直接运行。 7. **API文档**...

    java数据结构单链表的倒置

    数据结构中java版。。。对于单链表的倒置。。。

    java POI完整示例,POI将word转HTML,数据库倒出数据到Excel等

    使用Java POI,我们可以创建新的Excel工作簿,设置工作表,添加行和单元格,最后将数据填充进去。这在需要将大量结构化数据报告或分析结果呈现给用户时非常有效。通常,我们会先从数据库查询所需数据,然后通过POI...

    华中科技大学计算机学院Java程序设计实验一源码及报告.zip

    2. **Java基础**:实验基于Java编程语言,要求学生熟练掌握类、对象、接口、异常处理等基本概念,以及常用的数据结构如数组、链表和哈希表。 3. **数据结构实现**:在实现倒排索引时,可能会用到哈希表来存储词汇和...

    JAVA倒排索引及JSP网页显示

    《JAVA倒排索引及JSP网页显示:深入理解与实践》 在信息技术领域,搜索引擎是数据检索的重要工具,而倒排索引是其核心技术之一。本项目专注于使用JAVA实现基于Lucene的倒排索引,并通过JSP(JavaServer Pages)技术...

    java-excel-mysql互倒

    "java-excel-mysql互倒"项目就是这样一个示例,它展示了如何使用Java来实现Excel数据与MySQL数据库之间的双向转换。 1. Java与Excel的交互: - **jxl.jar**:这是一个Java库,用于读取和写入Microsoft Excel文件。...

Global site tag (gtag.js) - Google Analytics