package db.connect;
import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class DBManager {
public static String htmEncode(String target) {
StringBuffer stringbuffer = new StringBuffer();
int j = target.length();
for (int i = 0; i < j; i++) {
char c = target.charAt(i);
switch (c) {
case 60:
stringbuffer.append("<");
break;
case 62:
stringbuffer.append(">");
break;
case 38:
stringbuffer.append("&");
break;
case 34:
stringbuffer.append(""");
break;
case 169:
stringbuffer.append("©");
break;
case 174:
stringbuffer.append("®");
break;
case 165:
stringbuffer.append("¥");
break;
case 8364:
stringbuffer.append("€");
break;
case 8482:
stringbuffer.append("™");
break;
case 13:
if (i < j - 1 && target.charAt(i + 1) == 10) {
stringbuffer.append("<br>");
i++;
}
break;
case 32:
if (i < j - 1 && target.charAt(i + 1) == ' ') {
stringbuffer.append(" ");
i++;
break;
}
default:
stringbuffer.append(c);
break;
}
}
return new String(stringbuffer.toString());
}
public static String getNormalMysqlStr(String content) {
if (content == null)
return "";
String html = content;
html = content.replace("\"", "\\\"");
html = content.replace("\'", "\\\'");
// html=content.replace("\\%", "\\\\%");
return html;
}
private static String Time() {
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
java.util.Date d = c.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
return sdf.format(d);
}
public static void main(String args[]) throws Exception {
/**
ResultSet rs = null;
java.sql.Statement s1 = null;
java.sql.Statement s2 = null;
java.sql.Statement s3 = null;
Connection cn1 = null;
Connection cn2 = null;
long startTime = 0;// 开始时间
long endTime = 0; // 结束时间
int count = 1; // 计数
int onerun = 0; // 执行的最大数
int datanum = 0; // 总条数
int num = 0; // 取整最大数据
try {
startTime = System.currentTimeMillis();
cn1 = DBConnection.getCon1(); //mysql 连接 目标数据
cn2 = DBConnection.getCon2(); //sqlserver 连接 源数据
cn1.setAutoCommit(false);// 插入MYSQL数据库时使用事务批量提交
if (cn2 != null) {
s1 = cn1.createStatement();
s3= cn2.createStatement();
s2 = cn2.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = s2.executeQuery("select count(*) from crawlerdatacontent where GatherFlag='1'");
if (rs.next()) {// 先查询sqlserver数据源表,获取总数据条数
System.out.print("开始执行1 !!!");
datanum = rs.getInt(1);
}
System.out.println("总记录数:" + datanum + "条");
onerun = 1;// 执行的最大数
num = datanum / onerun * onerun;// 计算出总条数符合每批10000的数量是多少
s2.setMaxRows(datanum);
s2.setFetchSize(onerun);// 每批执行的数据条数
rs = s2.executeQuery("select * from crawlerdatacontent where GatherFlag='1'");
while (rs.next()) {
String id = CId.getUniqId();//获取自动代码生成主键
//插入第一张表maes_original
String sql = "insert into maes_original_back(id,datatitle,dataurl,sourceid,createtime) values('"
+ id
+ "','"
+ rs.getString("AnnoTitle")
+ "','"
+ rs.getString("URL")
+ "','"
+ rs.getString("ID")
+ "'," + "now()" + ")";
//System.out.println(sql);
s1.addBatch(sql);
//插入第二张表
String sql1="insert into maes_oritext_back(id,sourceid) values('"
+ id + "','" + rs.getString("ID") + "')";
s1.addBatch(sql1);
// +rs.getString("HTML")+"')");
if (rs.getString("HTML") != null) {
String ID=rs.getString("ID");
String sql2 = "update maes_oritext_back set datahtml = '"
+ getNormalMysqlStr(rs.getString("HTML"))
+ "' where id = '" + id + "';";
String sql3 = "update CrawlerDataContent set GatherFlag='3' where ID = '"
+ rs.getString("ID") + "';";
String sql4 = "update CrawlerDataContent set GatherFlag='9' where ID = '"
+ rs.getString("ID") + "';";
System.out.println(id);
s1.addBatch(sql2);
s3.addBatch(sql3);
System.out.println(sql3);
}
if (count < num) {// 10000取整后剩余的小数据量就顺序插入
int [] num1=((java.sql.Statement) s1).executeBatch();
s3.executeBatch();
System.out.println(num1.length);
((java.sql.Statement) s1).clearBatch();
cn1.commit();
//continue;
} else {// 数据够批次的就按批量插入
if (count % onerun != 0) {// 10000条一批插入
((java.sql.Statement) s1).executeBatch();
cn1.commit();
((java.sql.Statement) s1).clearBatch();
}
}
count++;
}
}
} catch (Exception e) {
//count--;
cn1.rollback();
// ConnectMysql.rollback(cn1);
String id = CId.getUniqId();
String sql4 = "update CrawlerDataContent set GatherFlag='9' where ID = '"
+ rs.getString("ID") + "';";
s3.addBatch(sql4);
s3.executeBatch();
e.printStackTrace();
} finally {
rs.close();
s2.close();
s1.close();
s3.close();
cn2.close();
cn1.close();
}
endTime = System.currentTimeMillis();
System.out.println("成功移植数据:" + (count - 1) + "条,耗时" + (endTime - startTime) / 1000 + "秒");*/
}
public static void DataExceuteOuput() throws Exception{
ResultSet rs = null;
java.sql.Statement s1 = null;
java.sql.Statement s2 = null;
java.sql.Statement s3 = null;
Connection cn1 = null;
Connection cn2 = null;
long startTime = 0;// 开始时间
long endTime = 0; // 结束时间
int count = 1; // 计数
int onerun = 0; // 执行的最大数
int datanum = 0; // 总条数
int num = 0; // 取整最大数据
try {
startTime = System.currentTimeMillis();
cn1 = DBConnection.getCon1(); //mysql 连接 目标数据
cn2 = DBConnection.getCon2(); //sqlserver 连接 源数据
cn1.setAutoCommit(false);// 插入MYSQL数据库时使用事务批量提交
if (cn2 != null) {
s1 = cn1.createStatement();
s3= cn2.createStatement();
s2 = cn2.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
rs = s2.executeQuery("select count(*) from crawlerdatacontent where GatherFlag='1'");
if (rs.next()) {// 先查询sqlserver数据源表,获取总数据条数
System.out.print("开始执行1 !!!");
datanum = rs.getInt(1);
}
System.out.println("总记录数:" + datanum + "条");
onerun = 1;// 执行的最大数
num = datanum / onerun * onerun;// 计算出总条数符合每批10000的数量是多少
s2.setMaxRows(datanum);
s2.setFetchSize(onerun);// 每批执行的数据条数
rs = s2.executeQuery("select * from crawlerdatacontent where GatherFlag='1'");
while (rs.next()) {
String id = CId.getUniqId();//获取自动代码生成主键
//插入第一张表maes_original
if (rs.getString("AnnoTitle") != null) {
String sql = "insert into txadm_original(id,datatitle,dataurl,sourceid,createtime) values('"
+ id
+ "','"
+ rs.getString("AnnoTitle")
+ "','"
+ rs.getString("URL")
+ "','"
+ rs.getString("ID")
没有合适的资源?快使用搜索试试~ 我知道了~
JAVA实现跨数据库服务器数据导出导入功能
共39个文件
class:10个
java:9个
jar:9个
4星 · 超过85%的资源 需积分: 50 78 下载量 96 浏览量
2013-05-30
10:34:13
上传
评论 2
收藏 2.44MB ZIP 举报
温馨提示
JAVA实现跨数据库服务器数据导出导入功能 可以是SQLSERVER 到MYSQL 之间的数据之间导入导出功能
资源推荐
资源详情
资源评论
收起资源包目录
DateImport.zip (39个子文件)
DateImport
.project 386B
hs_err_pid1808.log 13KB
src
db
connect
CId.java 2KB
DbConn.java 5KB
TimerTest.java 1KB
OraginalBean.java 6KB
sqlserver.properties 846B
ConnectMysql.java 3KB
makeOutDate.java 6KB
DBManager.java 10KB
DBConnection.java 10KB
mysql.properties 619B
Change.java 2KB
lib
servlet-api-2.4.jar 95KB
mysql-connector-java-5.1.20-bin.jar 784KB
commons-beanutils.jar 182KB
commons-lang-2.4.jar 256KB
ezmorph-1.0.6.jar 84KB
mysql-connector-java-3.0.10-stable-bin.jar 230KB
commons-logging-1.1.jar 52KB
commons-collections.jar 546KB
sqljdbc4.jar 413KB
hs_err_pid4212.log 13KB
.settings
org.eclipse.jdt.core.prefs 598B
org.eclipse.core.resources.prefs 104B
hs_err_pid4972.log 13KB
.classpath 900B
bin
db
connect
ConnectMysql.class 3KB
Change.class 2KB
DBConnection.class 8KB
DBManager.class 6KB
sqlserver.properties 846B
OraginalBean.class 5KB
CId.class 2KB
TimerTest.class 1KB
DbConn.class 6KB
makeOutDate.class 6KB
mysql.properties 619B
TimerTest$MyTask.class 626B
共 39 条
- 1
findme123
- 粉丝: 12
- 资源: 56
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页