- 浏览: 828787 次
- 性别:
- 来自: 北京、四川
文章分类
最新评论
-
sunbeamzheng:
总结的很好,好好看看。 拷贝问题确实很需要注意,特别是影不影响 ...
java深拷贝与浅拷贝 -
xmh8023:
...
获取POST数据的值 -
xmh8023:
我访问别的服务器怎么办?急求
获取POST数据的值 -
xmh8023:
String urlString="http://l ...
获取POST数据的值 -
lv12312:
Tomcat 7的老版本么?有bug的,https://iss ...
JMX问题
从一个数据库导入到另一个数据库中
package cn.dao; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.logicalcobwebs.proxool.configuration.JAXPConfigurator; /** * yicha * Dec 11, 2008 */ public class DataSql { private Logger logger=Logger.getLogger(DataSql.class); private Connection mysqlConn=null; private Connection conn = null; private Statement stat = null; private Statement mysqlStat=null; /** * jdbc链接 * @return */ public Connection getConn(){ String url="jdbc:microsoft:sqlserver://192.168.0.214:1433;DatabaseName=unionfee"; String user="unionfee"; String password="unionfee"; try{ Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); conn=DriverManager.getConnection(url, user, password); }catch(Exception e){ logger.error("Connecter=>getConnection error: "+e); } return conn; } /** * mysql 的jdbc链接 * @return */ public Connection getMysqlConn(){ String url="jdbc:mysql://192.168.0.225/unionfee?useUnicode=true&characterEncoding=utf8"; String user="root"; String password="root"; try{ Class.forName("com.mysql.jdbc.Driver"); mysqlConn=DriverManager.getConnection(url, user, password); }catch(Exception e){ logger.error("Connecter=>getConnection error: "+e); } return mysqlConn; } public Statement getStatement(){ try{ conn = this.getConn(); if(conn!=null)stat = conn.createStatement(); }catch(Exception e){ logger.error("Connecter=>getConnection error: "+e); } return stat; } public void close(){ try{ if(stat!=null)stat.close(); stat= null; }catch(Exception e){ logger.error("Connecter=>close statement error: "+e); } try{ if(conn!=null)conn.close(); conn = null; }catch(Exception e){ logger.error("Connecter=>close connection error: "+e); } } public ArrayList getTableData(String tableName) { // String tableName="t_ad_union_user"; String sql="select * from "+tableName; HashMap hashMap=null; ArrayList result=new ArrayList(); ResultSet rs; try { rs = this.getStatement().executeQuery(sql); //使用元数据获取一个表字段的总数 ResultSetMetaData rsmd=rs.getMetaData(); int coulum=rsmd.getColumnCount(); while(rs.next()){ hashMap=new HashMap(); // String[] array=new String[coulum]; for(int i=0;i<coulum;i++){ String columName=rsmd.getColumnName(i+1); hashMap.put(columName, rs.getString(i+1)); // logger.info(columName); // array[i]=rs.getString(i+1); //在数据库中可以插入日期,int,float,double,varchar // int columType=rsmd.getColumnType(i+1); // if(columType==java.sql.Types.INTEGER ){ // rs.getInt(i+1); // }else if(columType==java.sql.Types.BIGINT){ // rs.getInt(i+1); // }else if(columType==java.sql.Types.DATE){ // rs.getString(i+1); // } // else{ // rs.getString(i+1); // } } // result.add(array); result.add(hashMap); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } public String[] DataToSql(ArrayList al,String tableName){ // String tableName="t_ad_union_user"; String[] result=new String[al.size()]; String sql=""; for(int i=0;i<al.size();i++){ String fieldSql=""; String valueSql=""; HashMap data=(HashMap)al.get(i); Iterator it=data.keySet().iterator(); while(it.hasNext()){ String field=it.next().toString(); String value=data.get(field).toString(); fieldSql+=field+","; valueSql+="'"+value+"',"; // logger.info(field); } //去除最后字段的最后一个,符号,去除值的最后两个',符号 fieldSql=fieldSql.substring(0, fieldSql.length()-1); valueSql=valueSql.substring(0, valueSql.length()-1); sql="insert into "+tableName+"("+fieldSql+") "+" values("+valueSql+");"; // logger.info(sql); // logger.info(fieldSql); result[i]=sql; } return result; } /** * 写入到文件中 * @param str * @param path */ public void stringWriteToTxt(String tableName){ String path="c:\\"+tableName+".txt"; String[] content=this.DataToSql(this.getTableData(tableName), tableName); BufferedWriter bw=null; String str=null; try { bw=new BufferedWriter(new FileWriter(path)); for(int i=0;i<content.length;i++){ str=content[i]+"\n"; bw.write(str); } System.out.println("写文件成功!"+path); } catch (IOException e) { System.out.println("写文件时有错误!"+path); e.printStackTrace(); }finally{ if(bw!=null){ try { bw.close(); } catch (IOException e) { e.printStackTrace(); } } } } public void getTableData1(String tableName) { // String tableName="t_ad_union_user"; String sql="select * from "+tableName; String mysqlSql="select * from "+tableName; ResultSet rs=null; ResultSet mysqlRs=null; String path="c:\\"+tableName+".txt"; BufferedWriter bw=null; mysqlConn=this.getMysqlConn(); int count=0; long oldTime=System.currentTimeMillis(); try { // bw=new BufferedWriter(new FileWriter(path)); rs = this.getStatement().executeQuery(sql); //使用元数据获取一个表字段的总数 ResultSetMetaData rsmd=rs.getMetaData(); int coulum=rsmd.getColumnCount(); while(rs.next()){ String fieldSql=""; String valueSql=""; for(int i=0;i<coulum;i++){//获取mssql的字段 String columName=rsmd.getColumnName(i+1); String field=columName; String value=rs.getString(i+1); if(value!=null && !value.equalsIgnoreCase("NULL")){ fieldSql+=field+","; // valueSql+="'"+value.replaceAll("\'", "\\\\'")+"',"; valueSql+="'"+value.replaceAll("\\\\'", "\\\\\\\\'")+"',"; } } //生成sql语句 fieldSql=fieldSql.substring(0, fieldSql.length()-1); valueSql=valueSql.substring(0, valueSql.length()-1); sql="insert into "+tableName+"("+fieldSql+") "+" values("+valueSql+");"; mysqlStat.executeUpdate(sql); // if(mysqlConn.createStatement().executeUpdate(sql)>0){ // logger.info((count++)+"success"); // }else{ // logger.info("false"); // } //把sql语句写到文件中 // bw.write(sql+"\n"); // logger.info(sql); } } catch (Exception e) { logger.error("SQLException有错误!"+sql,e); } finally{ try { if(mysqlStat!=null) mysqlStat.close(); if(rs!=null) rs.close(); if(bw!=null) bw.close(); if(mysqlConn!=null) mysqlConn.close(); if(conn!=null) conn.close(); } catch (Exception ex) { logger.error("关闭conn时出错", ex); } } long now=System.currentTimeMillis(); logger.info("生成完毕,共花费了"+(now-oldTime)/1000+"s时间"); } /** * 数据库转移到mysql上,mysqlTableName上的字段必须和msFields的字段一一对应。 * @param mysqlTableName 目标数据库表 * @param tableName 源数据库表 * @param msFields tableName表中的字段 */ public void getTableData2(String mysqlTableName,String tableName,String[] msFields) { // String tableName="t_ad_union_user"; String sql="select * from "+tableName; String mysqlSql="select * from "+mysqlTableName; ResultSet rs=null; ResultSet mysqlRs=null; String path="c:\\"+mysqlTableName+".txt"; BufferedWriter bw=null; mysqlConn=this.getMysqlConn(); int count=0; long oldTime=System.currentTimeMillis(); try { // bw=new BufferedWriter(new FileWriter(path)); mysqlStat=mysqlConn.createStatement(); mysqlRs=mysqlStat.executeQuery(mysqlSql); ResultSetMetaData mysqlRsmd=mysqlRs.getMetaData(); // String mysqlField=""; // int mysqlColum=mysqlRsmd.getColumnCount(); // for(int i=0;i<mysqlColum;i++){//mysql数据库的字段 // mysqlField+=mysqlRsmd.getColumnName(i+1)+","; // } // mysqlField=mysqlField.substring(0, mysqlField.length()-1); rs = this.getStatement().executeQuery(sql); //使用元数据获取一个表字段的总数 ResultSetMetaData rsmd=rs.getMetaData(); int coulum=rsmd.getColumnCount(); // logger.info("mysqlColum:"+mysqlColum+":msFields:"+msFields.length); while(rs.next()){ String mysqlField=""; String valueSql=""; for(int i=0;i<coulum;i++){//获取mssql的字段 String columName=rsmd.getColumnName(i+1); String value=null; for(int j=0;j<msFields.length;j++){//获取指定的字段的值 if(columName.equalsIgnoreCase(msFields[j])){ value=rs.getString(i+1); if(value!=null && !value.equalsIgnoreCase("NULL")){ valueSql+="'"+value.replaceAll("\\'", "\\\\'")+"',";//mssql值 mysqlField+=mysqlRsmd.getColumnName(i+1)+",";//mysql数据库的字段 } } } } //生成sql语句 valueSql=valueSql.substring(0, valueSql.length()-1); mysqlField=mysqlField.substring(0, mysqlField.length()-1); sql="insert into "+mysqlTableName+"("+mysqlField+") "+" values("+valueSql+");"; // mysqlStat.executeUpdate(sql); if(mysqlStat.executeUpdate(sql)>0){ logger.info((count++)+"success"); }else{ logger.info("false"); } // logger.info(mysqlField); // logger.info(valueSql); //把sql语句写到文件中 // bw.write(sql+"\n"); } } catch (Exception e) { logger.error("SQLException有错误!"+sql,e); } finally{ try { if(mysqlStat!=null) mysqlStat.close(); if(rs!=null) rs.close(); if(bw!=null) bw.close(); if(mysqlConn!=null) mysqlConn.close(); if(conn!=null) conn.close(); } catch (Exception ex) { logger.error("关闭conn时出错", ex); } } long now=System.currentTimeMillis(); logger.info("生成完毕,共花费了"+(now-oldTime)/1000+"s时间"); } public static void main(String[] args){ // String tableName="LeaveWords"; // String tableName="SearchPrice"; // String tableName="t_site_indexed"; // String tableName="Declaration"; // String tableName="Bulletin"; // String tableName="t_login_info"; // String tableName="ss_ipnetlist"; String mysqlTableName="t_ad_union_basicData"; String msTableName="t_ad_union_basicData"; String[] msFields={"ID","createDate","statDate","alltype","uid","posid", "type","remoteIp","isMobile"}; // String mysqlTableName="t_ad_union_userTotal_final"; // String msTableName="t_ad_union_userTotal_final"; // String[] msFields={"ID","createDate","statDate","uid","posId","clickNum", // "showNum","clickNumOne","clickNumTwo","ipNum","aa","aa2","price"}; // String mysqlTableName="t_ad_union_userTotal"; // String msTableName="t_ad_union_userTotal"; // String[] msFields={"ID","createDate","statDate","uid","posId","clickNum", // "showNum","clickNumOne","clickNumTwo","ipNum","aa","aa2","price"}; // String mysqlTableName="t_ad_union_kouliang"; // String msTableName="t_ad_union_kouliang"; // String[] msFields={"ID","statDate","assignRatio","deductRatio","incomeTotal","assignRatioInit", // "deductRatioInit","incomeTotalInit","ispast","incomeTotalFinal"}; // String mysqlTableName="t_ad_union_ip_config"; // String msTableName="t_ad_union_ip_config"; // String[] msFields={"ID","userid","minQuery","maxQuery","minValue","maxValue","minTrans", // "maxTrans"}; // String mysqlTableName="t_ad_union_cpc_config"; // String msTableName="t_ad_union_cpc_config"; // String[] msFields={"ID","userid","minCpc","maxCpc","value","beginDate","endDate"}; // String mysqlTableName="t_ad_union_adver_cpc"; // String msTableName="t_ad_union_adver_cpc"; // String[] msFields={"ID","statDate","adverName","clickNum"}; // String mysqlTableName="t_ad_union_adTotal_ip"; // String msTableName="t_ad_union_adTotal_ip"; // String[] msFields={"ID","createDate","statDate","allType","showNum","clickNum","remoteIp"}; // String mysqlTableName="t_ad_union_adTotal_allType"; // String msTableName="t_ad_union_adTotal_allType"; // String[] msFields={"ID","createDate","statDate","allType","showNum","clickNum","remoteIp"}; // String mysqlTableName="t_ad_union_ader_config"; // String msTableName="t_ad_union_ader_config"; // String[] msFields={"ID","adName","minCpa","maxCpa","value"}; // String mysqlTableName="t_ad_union_ad_income"; // String msTableName="t_ad_union_ad_income"; // String[] msFields={"ID","createDate","statDate","cpa","price","income","username"}; // String mysqlTableName="t_UnionPayMonthReport"; // String msTableName="UnionPayMonthReport"; // String[] msFields={"ID","createDate","statDate","payTime","userid","feeValue","validTotal", // "checkStatus","payStatus","remark","confirmStatus"}; // String mysqlTableName="t_Union_UserPayMonth"; // String msTableName="Union_UserPayMonth"; // String[] msFields={"ID","createDate","statDate","userid","feeValue","validTotal", // "checkStatus","remark","advalue"}; // String mysqlTableName="t_UnionSiteMonthReport"; // String msTableName="UnionSiteMonthReport"; // String[] msFields={"ID","createDate","statDate","sid","feeValue","validTotal"}; // String mysqlTableName="t_UnionSiteMonthReportDetail"; // String msTableName="UnionSiteMonthReportDetail"; // String[] msFields={"ID","validTotal","sid","statDate","searchType","userid","price"}; // String mysqlTableName="t_TopSites"; // String msTableName="t_TopSites"; // String[] msFields={"ID","easyName","fullName","url","sid","topKey","typeKey","orderNo","showSite"}; // String mysqlTableName="t_LeaveWords"; // String msTableName="LeaveWords"; // String[] msFields={"ID","CreateTime","Content","HasReply","ReplyContent","Email","userid", // "ua","url","ip","uid"}; // String mysqlTableName="t_SearchPrice"; // String msTableName="SearchPrice"; // String[] msFields={"ID","MinDate","MaxDate","MinScale","MaxScale","SearchType","price","sid", // "userid","remark"}; // String mysqlTableName="t_site_indexed"; // String msTableName="t_site_indexed"; // String[] msFields={"ID","CreateDate","reviewedDate","domainAddr","email","status","reviewed"}; // String mysqlTableName="t_Declaration"; // String msTableName="Declaration"; // String[] msFields={"id","CreateTime","title","content","dposition","userid"}; // String mysqlTableName="t_login_info"; // String msTableName="t_login_info"; // String[] msFields={"id","userid","username","loginDate","ip","loginType"}; // String mysqlTableName="t_ipnetlist"; // String msTableName="ss_ipnetlist"; // String[] msFields={"ip","ip2","createdt","netname"}; // String mysqlTableName="t_ss_sqlconfig"; // String msTableName="ss_sqlconfig"; // String[] msFields={"ID","keyword","sqlUrl","title","roles","team","isurl"}; // String mysqlTableName="t_ss_managetree"; // String msTableName="ss_managetree"; // String[] msFields={"ID","title","pid","orderId",}; // String mysqlTableName="t_ss_operator"; // String msTableName="ss_operator"; // String[] msFields={"ID","UserName","Password","Attribute","remark"}; // String mysqlTableName="t_unionsite"; // String msTableName="unionsite"; // String[] msFields={"SID","CreateTime","UpdateTime","userid","DomainAddr","DomainTitle","BottomLink", // "BottomTitle"}; // String mysqlTableName="t_unionuser"; // String msTableName="unionuser"; // String[] msFields={"UID","CreateTime","UpdateTime","userid","password","teleNo","mobileNo", // "IDCard","BankType","BankPlace","BankCardNo","QQ","FullName","Email","LinkFrom", // "LastIp","UA","msn","isOpen"}; DataSql ds=new DataSql(); ds.getTableData2(mysqlTableName,msTableName,msFields); } }
- dao.zip (4.1 KB)
- 下载次数: 82
评论
2 楼
何处烤地瓜
2012-04-10
说几个建议把,你这个只是对varchar类型的做导入,对DATA 类型等等都没有做很好的转换, 还有对于取插入时的字段不需要每次循环去取,只要在循环外面取一次即可
1 楼
何处烤地瓜
2012-04-08
有考虑 clob字段吗
发表评论
-
proxool试用
2014-03-26 14:00 946配置文件: <?xml version=" ... -
DB2联合数据库配置实例(转载)
2010-06-21 17:11 1751由于需要使用到两台机器上的db2数据库读取数据的需求,因此使用 ... -
mongo的初体验
2009-12-04 15:40 3045首先在mongo官网下载Windows的版本 启动服务:mo ... -
db2的sql语句报错的状态码的解释
2009-11-04 20:57 4293含义 要获得子代码, 参阅... 00 完全成功完成 表 3 ... -
sql在不同数据库查询前几条数据
2009-10-15 12:54 1952sql在不同数据库查询前几条数据 1. ORACLE S ... -
db2数据库表的导入导出数据库表
2009-10-14 20:47 1928导出表结构,命令行如下: db2look -d dbname ... -
利用索引优化sql语句
2009-07-24 15:28 1480转载地址:http://www.cnblo ... -
mysql的优化
2009-03-13 09:15 1150地址:http://www.blogjava.net/wang ... -
Hibernate中text字段诡异出错
2009-03-10 17:45 3150Hibernate中text字段诡异出错 描述:最初的sql语 ... -
mysql存储过程总结
2009-03-05 09:35 3670mysql存储过程的例子: DELIMITER $$ ... -
IN与EXISTS和INNER JOIN执行效率
2008-12-30 19:21 4080主要是查询日志里面的数据个数,过滤掉一些非法ip,手机上的,因 ... -
sql去除重复以及列转行sql语句
2008-12-24 11:37 7863工作中非常实用的sql语句 数据: userid si ... -
mysql数据库备份
2008-12-19 21:50 1244-- 备份 test_database 数据库 /usr/bi ... -
mysql(免安装版)的一些基本命令
2008-12-04 22:57 1482mysql中的命令行操作: 1、默认的用户名是root,密码是 ... -
两个数据库的更新操作
2008-11-10 14:09 1329两个数据库的更新操作,把一个数据库中的表的数据更新到另一个数据 ... -
set命令详解
2008-10-20 12:03 1494一、用set命令设置自定义变量 显示、设置或删除 cmd.ex ... -
数据库备份(ms sql server)
2008-10-13 15:04 1354@ECHO off ECHO database ba ... -
数据库还原(ms sql server)
2008-10-13 15:02 1516@ECHO off ECHO database ba ...
相关推荐
这时,"Access数据导入助手"这款工具就显得尤为重要,它能够帮助用户快速且方便地将一个ACCESS数据库中的数据导入到另一个数据库中,极大地提高了工作效率。 Access数据导入助手的核心功能在于其直观易用的操作界面...
数据库导入是指将数据从一个数据库导入到另一个数据库中。这里,我们使用 imp 命令将导出的数据导入到 Linux 服务器下的 Oracle 数据库中。 六、表空间管理 表空间是 Oracle 数据库中用于存储数据的逻辑存储单元。...
在SQL Server中,将表从一个数据库复制到另一个数据库的过程涉及到数据库对象的迁移,这通常通过创建表的结构脚本和数据迁移来实现。以下是一个详细的步骤指南: 1. **启动SQL Server Management Studio (SSMS)**: ...
在IT行业中,数据库迁移是一项常见的任务,特别是在Java开发中,我们经常需要将数据从一个数据库迁移到另一个数据库,比如从测试环境迁移到生产环境。这个过程不仅涉及数据的复制,还包括了数据库结构(如表、索引等...
SQL Server 数据库导入导出是数据库管理员和开发者常用的操作,目的是将数据库备份到本地或网络存储设备中,以便在需要时恢复数据库或将数据库迁移到其他服务器上。下面将详细介绍 SQL Server 数据库导入导出的方法...
总结,将Access数据库导入到SQL Server数据库,通过ADOQuery控件,可以实现快速且灵活的数据迁移。这个过程涉及到数据库连接、SQL命令编写、错误处理以及可能的性能优化,是数据库管理员和开发者必备的技能之一。...
MySQL 数据库导入导出命令是数据库管理员和开发者经常使用的命令,用于将 MySQL 数据库导出到文件中,以便备份、还原或迁移到其他服务器。下面将详细介绍 MySQL 数据库导入导出的命令和方法。 数据库备份 数据库...
- 数据迁移:当需要将数据从一个Oracle实例迁移到另一个实例时,导入导出工具是关键。 - 数据备份:定期备份数据库以防止数据丢失,确保业务连续性。 - 数据恢复:在系统故障或数据错误时,通过备份数据进行恢复...
标题中的"DELPHI 从EXCEL导入到数据库"是一个关于使用Delphi编程语言将Excel电子表格中的数据导入到数据库的应用实例。这个话题涉及到多个IT领域的知识点,包括Delphi编程、Excel文件处理以及数据库交互。 Delphi是...
谈谈数据从sql server数据库导入mysql数据库的体验
例如,以下命令将导出当前数据库的表结构到一个名为 dbfile.sql 的文件中: Db2look -d mydb -e UTF-8 -a -x -i myuser -w mypassword -o dbfile.sql 二、导出表数据 在 DB2 命令行工具中,使用 Db2move 命令来...
这种方式使用 SQL 语句来将数据从一个数据库导入到另一个数据库中。这种方式非常灵活,支持多种类型的数据库,可以在不同的 SQL Server 数据库之间进行数据导入导出。 使用 Transact-SQL 时,可以使用 SELECT INTO ...
导入数据库表的功能允许我们将现有的数据库结构快速转化为PowerDesigner的数据模型,方便我们进行后续的调整和优化。 要将数据库中的表导入到PowerDesigner,我们需要遵循以下步骤: 1. **启动PowerDesigner**:...
总的来说,从Excel中读取数据并导入到数据库是一个涉及数据预处理、类型转换、错误处理等多个环节的过程。正确处理合并单元格和长文本问题,能确保数据导入的准确性和效率,从而更好地支持后续的数据分析和应用。
ERwin 反向导入工程是指从数据库中将表导入到 ERwin 中的过程,在这个过程中,我们可以将数据库中的表结构导入到 ERwin 中,以便进行数据分析和设计。下面是 ERwin 反向导入工程的详细步骤: 1. 打开 ERwin 并新建...
本文将详细介绍如何将 Oracle 数据库导入到 SqlServer 中。 Step 1-6: 数据源设置 首先,在要导入的数据库上右键,点击“任务”-“导入数据”。然后,在“导入导出向导”中点击“下一步”。接着,选择数据源为...
首先,将Excel文件导入数据库通常涉及到以下几个步骤: 1. 数据预处理:在Excel中整理数据,确保格式正确,无错误或缺失值。可能需要创建或调整数据表,以便与数据库表格结构匹配。 2. 选择导入方式:常见的数据库...
在 PL/SQL 工具中,选择 ODBC 导入器工具,该工具可以用来将数据从其他数据库导入到 Oracle 数据库中。选择 ODBC 导入器后,弹出对话框,要求输入 Access 数据库的用户名和密码。由于 Access 数据库不需要用户名和...