资源简介

将postgres数据导入到sqlite;支持自动创建sqlite表,支持全库导入和指定表导入。

资源截图

代码片段和文件信息

package com.app.tosqlite;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetmetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Vector;

public class Postgre2Sqlite 
{
private static Connection getSqliteConn(String url)
{
Connection conn = null;
try 
{
Class.forName(“org.sqlite.JDBC“);
conn = DriverManager.getConnection(url);//设置sqlite的路径

catch (Exception e) 
{
e.printStackTrace();
}
return conn;
}

private static Connection getTargetDBConn(String fornameString urlString userString password)
{
Connection con = null;
try 
{
Class.forName(forname).newInstance();
con = DriverManager.getConnection(url user password);

catch (Exception e) 
{
e.printStackTrace();
}
return con;
}

public static void importTable(Connection pConnConnection sqliteConnString tableName) throws SQLException
{
Map colTypeMap = new HashMap();
System.err.println(“前:“+colTypeMap.size());
ResultSet rs = initColumn(pConn tableNamecolTypeMap);//这里已经查过了
System.err.println(“后:“+colTypeMap.size());

if(null==rs)
{
return;
}

String strInsert = “insert into “ + tableName + getParamStr(colTypeMap.size());
System.out.println(strInsert);
PreparedStatement psInsert = sqliteConn.prepareStatement(strInsert);

int batchInsertCnt = 0;

while(rs.next())
{
//循环结果集中的一条数据中的所有列
for (int i = 1; i <= colTypeMap.size(); i++) 
{
int colType = colTypeMap.get(i);

switch (colType) 
{
case -7:
psInsert.setBoolean(i rs.getBoolean(i));
break;
case -1:
psInsert.setString(i rs.getString(i));
break;
case 4:
psInsert.setInt(i rs.getInt(i));
break;
case 8:
psInsert.setDouble(i rs.getDouble(i));
break;
case 12:
psInsert.setString(i rs.getString(i));
break;
case 93:
psInsert.setDate(i rs.getDate(i));
break;
}
}

//循环结果集中的一条数据加入到批量处理集中
psInsert.addBatch();
batchInsertCnt++;
if (batchInsertCnt % 100 == 0) 
{
System.out.println(“batchInsertCnt:“ + batchInsertCnt);
psInsert.executeBatch();
}
}
if (batchInsertCnt > 0) 
{
psInsert.executeBatch();
System.out.println(tableName + “ total insert:“ + batchInsertCnt + “ rows.“);
}
}

private static String getParamStr(int colCnt) 
{
String paramStr = “ values (“;
for (int i = 0; i < colCnt; i++) 
{
if (i==0) 
{
paramStr += “?“;

else 
{
paramStr += “?“;
}
}
paramStr += “) “;
return paramStr; 
}

private static void closeDBConn(Connection connMyDBsql Connection connSqlite) throws SQLException 
{
con

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        430  2013-12-28 23:36  Postgres2Sqlite\.classpath

     文件        391  2013-12-28 23:28  Postgres2Sqlite\.project

     文件        598  2013-12-28 23:28  Postgres2Sqlite\.settings\org.eclipse.jdt.core.prefs

     文件       9220  2013-12-28 23:39  Postgres2Sqlite\bin\com\app\tosqlite\Postgre2Sqlite.class

     文件    3702257  2013-06-20 18:11  Postgres2Sqlite\lib\sqlite-jdbc-3.7.15-SNAPSHOT.jar

     文件     466359  2013-08-30 14:53  Postgres2Sqlite\lib\sqljdbc4.jar

     文件       7342  2013-12-28 23:39  Postgres2Sqlite\src\com\app\tosqlite\Postgre2Sqlite.java

     目录          0  2013-12-28 23:36  Postgres2Sqlite\bin\com\app\tosqlite

     目录          0  2013-12-28 23:29  Postgres2Sqlite\src\com\app\tosqlite

     目录          0  2013-12-28 23:36  Postgres2Sqlite\bin\com\app

     目录          0  2013-12-28 23:29  Postgres2Sqlite\src\com\app

     目录          0  2013-12-28 23:36  Postgres2Sqlite\bin\com

     目录          0  2013-12-28 23:29  Postgres2Sqlite\src\com

     目录          0  2013-12-28 23:28  Postgres2Sqlite\.settings

     目录          0  2013-12-28 23:36  Postgres2Sqlite\bin

     目录          0  2013-12-28 23:38  Postgres2Sqlite\db

     目录          0  2013-12-28 23:36  Postgres2Sqlite\lib

     目录          0  2013-12-28 23:29  Postgres2Sqlite\src

     目录          0  2013-12-28 23:35  Postgres2Sqlite

----------- ---------  ---------- -----  ----

              4186597                    19


评论

共有 条评论