package DBTableDateMove;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import DBDrive.OraclePostgreSQLDrive;
public class OracleTableDataToPostgresqlTableData {
private static int REMOVETOTAL = 0;
private static String SQL_CONTENT(String ownerName ,String tableName){
return "SELECT t.COLUMN_NAME ,t.DATA_TYPE FROM all_tab_columns t WHERE owner = UPPER('"+ownerName+"') AND t.table_name = UPPER('"+tableName+"') ORDER BY t.COLUMN_ID";
}
private static String SQL_TABLE_DATA(String tableName){
return "SELECT * FROM "+tableName;
}
private static String DELETE_TABLE_DATA(String tableName){
return "DELETE "+tableName;
}
private static String INSERTITEM(String tableName){
return "insert into "+tableName+"( ";
}
public static void main(String[] args) {
List<String> tableNmaeList = OraclePostgreSQLDrive.getTableNmaeList();
/**
* 追加需要导入数据表
**/
if(tableNmaeList!=null && tableNmaeList.size() == 0){
return;
}
for(int tableSize = 0 ; tableSize < tableNmaeList.size();tableSize++){
String COLUMNNAME = "";
String VALUEITEM = ") values ( ";
String INSERTDETAIL = "";
int rowCount = 0;
Map<String, String> map = new HashMap<String, String>();
int rowNum = 0;
try {
//
Class.forName(OraclePostgreSQLDrive.PostgreSQL_DRIVER);
Connection pconn = DriverManager.getConnection(OraclePostgreSQLDrive.Restore_PostgreSQL_URL,
OraclePostgreSQLDrive.PostgreSQL_USERNAME, OraclePostgreSQLDrive.PostgreSQL_PASSWORD);
PreparedStatement pstmt = null;
Statement pdetelestmt = pconn.createStatement();
Class.forName(OraclePostgreSQLDrive.OracleSQL_DRIVER);
Connection oconn = DriverManager.getConnection(OraclePostgreSQLDrive.Backup_OracleSQL_URL,
OraclePostgreSQLDrive.OracleSQL_USERNAME, OraclePostgreSQLDrive.OracleSQL_PASSWORD);
Statement ostmt = oconn.createStatement();
// System.out.println(SQL_CONTENT(OraclePostgreSQLDrive.OwnerName,tableNmaeList.get(tableSize)));
ostmt.executeQuery(SQL_CONTENT(OraclePostgreSQLDrive.OwnerName,tableNmaeList.get(tableSize)));
ResultSet resultSet = ostmt.getResultSet();
while (resultSet.next()) {
String columnName = resultSet.getString(1);
String dataType = resultSet.getString(2);
if(resultSet.getRow() == 1){
COLUMNNAME = COLUMNNAME + columnName;
VALUEITEM = VALUEITEM + "?";
}else{
COLUMNNAME = COLUMNNAME + ","+columnName;
VALUEITEM = VALUEITEM + ", ?";
}
rowNum++;
map.put(Integer.toString(rowNum), dataType);
}
if(!resultSet.next()){
INSERTDETAIL = INSERTITEM(tableNmaeList.get(tableSize)) + COLUMNNAME + VALUEITEM + ")";
System.out.println(INSERTDETAIL);
ostmt.executeQuery(SQL_TABLE_DATA(tableNmaeList.get(tableSize)));
resultSet = ostmt.getResultSet();
pstmt = pconn.prepareStatement(INSERTDETAIL);
while (resultSet.next()) {
for(int i = 1; i<= rowNum ; i++){
String dataType = "";
dataType = map.get(Integer.toString(i));
if("VARCHAR2".equals(dataType)){
pstmt.setString(i, resultSet.getString(i));
}else if("DATE".equals(dataType)){
pstmt.setDate(i, resultSet.getDate(i));
}else if("NUMBER".equals(dataType)){
pstmt.setDouble(i, resultSet.getDouble(i));
}else{
System.out.println("==========="+dataType+" 类型缺少,请添加 ===========");
throw new Exception();//抛出异常
}
}
if(resultSet.getRow() == 1){
REMOVETOTAL = pdetelestmt.executeUpdate(DELETE_TABLE_DATA(tableNmaeList.get(tableSize)));
System.out.println("============开始导入"+tableNmaeList.get(tableSize)+"表数据,删除原有数据"+Integer.toString(REMOVETOTAL)+"行============");
}
pstmt.executeUpdate();
rowCount++;
}
if(!resultSet.next()){
System.out.println("============导入成功导入"+rowCount+"行记录=============");
}
}
pstmt.close();
pconn.close();
ostmt.close();
oconn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
blazeDS +Spring 整合 小例子. (附带 ,Oracle 像EDB 表数据迁移小工具)
共62个文件
jar:19个
xml:9个
html:5个
需积分: 10 9 下载量 74 浏览量
2010-08-25
14:06:03
上传
评论
收藏 7.77MB RAR 举报
温馨提示
blazeDS +Spring 整合 附加Oracle 与 EDB 两个数据库的驱动. 自己写了 导数据小工具. (表建立好的情况下. 我没写自动建表. 写这个工具 是因为我的电脑是外文系统. 用EDB自带导表数据乱码, 应该是编码格式的问题. 所以自己写了个. )
资源推荐
资源详情
资源评论
收起资源包目录
BlazeDS.rar (62个子文件)
BlazeDS
.actionScriptProperties 1KB
bin-debug
BlazeDS.swf 417KB
history
historyFrame.html 827B
history.css 371B
history.js 24KB
BlazeDS.html 4KB
playerProductInstall.swf 657B
AC_OETags.js 8KB
WebContent
META-INF
MANIFEST.MF 254B
WEB-INF
config
applicationContext-app.xml 846B
applicationContext-ds-servlet.xml 868B
web.xml 3KB
src
classes
DBTableDateMove
OracleTableDataToPostgresqlTableData.class 5KB
remoting
Hello.class 970B
model
test.class 958B
DBDrive
OraclePostgreSQLDrive.class 2KB
flex
messaging-config.xml 513B
proxy-config.xml 826B
services-config.xml 4KB
version.properties 73B
remoting-config.xml 578B
lib
spring-webmvc.jar 393KB
log4j-1.2.14.jar 359KB
commons-codec-1.3.jar 46KB
spring-security-core-2.0.4.jar 755KB
flex-messaging-common-3.2.0.3978.jar 88KB
backport-util-concurrent.jar 319KB
flex-rds-server.jar 53KB
flex-messaging-proxy--3.2.0.3978.jar 65KB
ojdbc14.jar 1.47MB
commons-httpclient-3.0.1.jar 273KB
flex-messaging-opt--3.2.0.3978.jar 20KB
org.springframework.flex-1.0.3.jar 125KB
flex-messaging-remoting--3.2.0.3978.jar 18KB
commons-logging.jar 37KB
cglib-nodep-2.1_3.jar 317KB
flex-messaging-core-3.2.0.3978.jar 629KB
edb-jdbc14.jar 516KB
spring-2.5.6.jar 2.81MB
cfgatewayadapter.jar 15KB
MessageBrokerServlet-servlet.xml 309B
index.html 249B
flex_src
model
test.as 467B
BlazeDS.mxml 2KB
.flexProperties 344B
flex_libs
html-template
index.template.html 4KB
history
historyFrame.html 827B
history.css 371B
history.js 24KB
playerProductInstall.swf 657B
AC_OETags.js 8KB
.settings
org.eclipse.wst.common.project.facet.core.xml 269B
org.eclipse.core.resources.prefs 88B
org.eclipse.wst.common.component 584B
org.eclipse.jst.common.project.facet.core.prefs 288B
org.eclipse.jdt.core.prefs 330B
src
DBTableDateMove
OracleTableDataToPostgresqlTableData.java 4KB
remoting
model
test.java 515B
Hello.java 289B
DBDrive
OraclePostgreSQLDrive.java 2KB
.project 1KB
.classpath 476B
共 62 条
- 1
资源评论
lmy515352000
- 粉丝: 2
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功