我现在要把表1中的56万数据分别插入同一库中的表2和表3中,但插入时需满足以下条件:1.表1中的某些字段类型需转换后才能插入表2和表32.表3中有主键控制,不能插入某字段值相同的数据(56万数据中包括此类数据);表2无主键控制,每条数据都插入我现在写了一个连接数据库的bean如下:
package transition;
import java.sql.*;
public class ebcmdb { String sDBDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String sConnStr = "jdbc:microsoft:sqlserver://sbb:1433;DatabaseName=ebcm20";
private Connection conn = null;
private Statement stmt=null;
ResultSet rs = null; public ebcmdb()
{ try
{
Class.forName(sDBDriver);
} catch(java.lang.ClassNotFoundException et)
{
System.err.println("reddb():" + et.getMessage());
} } public ResultSet executeQuery(String sql)
{
rs = null;
try
{
conn = java.sql.DriverManager.getConnection(sConnStr,"sa","");
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(sql);
} catch(SQLException ex)
{
System.err.println("ebcmdb.executeQuery: " + ex.getMessage());
} return rs;
} public void executeUpdate(String sql) throws SQLException {
try {
conn = java.sql.DriverManager.getConnection(sConnStr,"sa","");
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); stmt.executeUpdate(sql);
}
catch (SQLException ex) {
ex.printStackTrace();
System.out.println("ebcmdb.executeUpdate:"+ex.getMessage());
throw ex;
}
} public void close() throws SQLException {
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
}}请问各位大虾们如何写最优化(能用最短的时间完成数据的插入).
package transition;
import java.sql.*;
public class ebcmdb { String sDBDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String sConnStr = "jdbc:microsoft:sqlserver://sbb:1433;DatabaseName=ebcm20";
private Connection conn = null;
private Statement stmt=null;
ResultSet rs = null; public ebcmdb()
{ try
{
Class.forName(sDBDriver);
} catch(java.lang.ClassNotFoundException et)
{
System.err.println("reddb():" + et.getMessage());
} } public ResultSet executeQuery(String sql)
{
rs = null;
try
{
conn = java.sql.DriverManager.getConnection(sConnStr,"sa","");
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); rs = stmt.executeQuery(sql);
} catch(SQLException ex)
{
System.err.println("ebcmdb.executeQuery: " + ex.getMessage());
} return rs;
} public void executeUpdate(String sql) throws SQLException {
try {
conn = java.sql.DriverManager.getConnection(sConnStr,"sa","");
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); stmt.executeUpdate(sql);
}
catch (SQLException ex) {
ex.printStackTrace();
System.out.println("ebcmdb.executeUpdate:"+ex.getMessage());
throw ex;
}
} public void close() throws SQLException {
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(conn!=null)
conn.close();
}}请问各位大虾们如何写最优化(能用最短的时间完成数据的插入).
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货