jdk1.6下使用jdbc连接oracle9以及oracle10的不同表现的原因求教
大家好,我最近在写一个jsp的页面,要往oracle里面批量导数据,量也不是很大,也就500条记录/次。我用的是 jdbc的thin模式连接的。当我在测试库上面写代码的时候,一切都很顺利,500条记录导入一直都是很成功的。但是在我把程序连接到正式库上面的时候,就有问题了,每次导入的时候只能够导20条,运气最好的时候也不过60多条,我很郁闷了,反反复复的检查,甚至把整个程序复制过去,只改一下他的url连接,也还是不行。我的测试库是以前厂家装的oracle9(基于AIX),现在用的生产库是自己装的oracle10,装在windows上面的。我用的jdbc是从生产库上面的oracle10数据库安装目录里拷贝下来的claa12.jar以及ojdbc14.jar。两个文件在连接oracle9的时候表现都很好,但是在连接它自己的oracle10的时候却如此的糟糕,请教一下是怎么回事啊?有没有哪位高人以前有遇到过类似问题的?还望赐教一下。谢谢!!我的连接数据库的javabean的代码如下:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package newpackage;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
/**
*
* @author Administrator
*/
public class connecttodb {
Connection conn;
Statement stmt=null;
ResultSet rs=null;
public void connectTODB(){
String CLASSFORNAME="oracle.jdbc.driver.OracleDriver";
try{
Class.forName(CLASSFORNAME);
conn=DriverManager.getConnection("jdbc:oracle:thin:@193.34.7.18:1521:wk","wk","123456");
} catch(Exception e) {
e.printStackTrace();
}
}
/** Creates a new instance of AdminDataBaseBean */
public connecttodb() {
}
public ResultSet executeQuery(String sql)
{
// Statement stmt=null;
// ResultSet rs=null;
stmt=null;
rs=null;
connectTODB();
try
{
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{
System.err.println("db.executeQuery: ".concat(String.valueOf(String.valueOf(ex.getMessage()))));
}
finally{
// this.close();
// this.closeconn();
}
//conn.close();
return rs;
}
public boolean executeUpdate(String sql)
{
boolean bupdate = false;
connectTODB();
stmt=null;
try
{
stmt = conn.createStatement();
int rowCount = stmt.executeUpdate(sql);
if(rowCount != 0)
bupdate = true;
}
catch(SQLException ex)
{
System.err.println("db.executeUpdate: ".concat(String.valueOf(String.valueOf(ex.getMessage()))));
}
finally{
close();
}
return bupdate;
}
public boolean log(String user_name,String operation,String service_num)
{
boolean bupdate = false;
String sql=null;
stmt=null;
rs=null;
connectTODB();
try
{
stmt = conn.createStatement();
sql ="insert into WK_WEA_OPELOG values(SEQ_WK_WEA_ROLE_BAK.nextval,'"+user_name+"','"+operation+"','"+service_num+"',sysdate)";
stmt.executeUpdate(sql);
}
catch(Exception e)
{
System.err.println("db.executeUpdate: ".concat(String.valueOf(String.valueOf(e.getMessage()))));
}
finally
{
close();
}
return bupdate;
}
public void close(){
try {
if(rs!=null){
rs.close();
rs=null;
}
if(stmt!=null){
stmt.close();
stmt=null;
}
if(conn!=null){
conn.close();
conn=null;
}
}catch(Exception ee){
ee.printStackTrace();
}
}
public void close2(){
try {
/*this.rs.close();
this.rs=null;*/
this.stmt.close();
this.stmt=null;
this.conn.close();
this.conn=null;
}catch(Exception ee){
ee.printStackTrace();
}
}
public void closers()
{
try
{
if(rs!=null){
rs.close();
rs=null;
}
}
catch(SQLException ex)
{
System.err.println("closeconn()".concat(String.valueOf(String.valueOf(ex.getMessage()))));
}
}
public void closeconn()
{
try
{
if(conn!=null){
conn.close();
conn=null;
}
}
catch(SQLException ex)
{
System.err.println("closeconn()".concat(String.valueOf(String.valueOf(ex.getMessage()))));
}
}
public void closestmt()
{
try
{
if(stmt!=null){
stmt.close();
stmt=null;
}
}
catch(SQLException ex)
{
System.err.println("closestmt():".concat(String.valueOf(String.valueOf(ex.getMessage()))));
}
}
}