代码
public class OracleConnect {
String strDriver_ = "jdbc:oracle:thin:@192.21.100.1:SID";
String userName_ = "you";
String passWord_ = "asp";
Connection conn_ = null;
public synchronized Connection getConnection() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
conn_ =
DriverManager.getConnection(strDriver_, userName_, passWord_);
} catch (Exception sqlEx) {
sqlEx.printStackTrace();
}
return conn_; }
public int storeProcedure(String storeProc)
{
String status = null;
try {
//Connection connection = getConnection();
//CallableStatement cstmt = connection.prepareCall("{call "+storeProc+"()}");
//cstmt.registerOutParameter(1,Types.INTEGER);
Connection conn= getConnection(); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); String sql="select * from r_Fgi_Rwdc"; ResultSet rs=stmt.executeQuery(sql); while(rs.next())
status = rs.getString("DEVICENO");
System.out.println("storeproce");
System.out.println(status);
rs.close();
stmt.close();
conn.close(); }
catch (Exception ex)
{
StringWriter buf = new StringWriter(1024);
ex.printStackTrace(); }
return 1;
}
public static void main(String[] args)
{
OracleConnect connect = new OracleConnect();
connect.storeProcedure("hwsc.sp_test");
}
}异常出错
java.lang.ArrayIndexOutOfBoundsException: 7
at oracle.security.o3logon.C1.r(C1)
at oracle.security.o3logon.C1.l(C1)
at oracle.security.o3logon.C0.c(C0)
at oracle.security.o3logon.O3LoginClientHelper.getEPasswd(O3LoginClientHelper)
at oracle.jdbc.ttc7.O3log.<init>(O3log.java:290)
at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:251)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:252)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:365)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:260)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at com.oracle.test.OracleConnect.getConnection(OracleConnect.java:33)
at com.oracle.test.OracleConnect.storeProcedure(OracleConnect.java:48)
at com.oracle.test.OracleConnect.main(OracleConnect.java:76)
java.lang.NullPointerException
at com.oracle.test.OracleConnect.storeProcedure(OracleConnect.java:50)
at com.oracle.test.OracleConnect.main(OracleConnect.java:76)
public class OracleConnect {
String strDriver_ = "jdbc:oracle:thin:@192.21.100.1:SID";
String userName_ = "you";
String passWord_ = "asp";
Connection conn_ = null;
public synchronized Connection getConnection() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
conn_ =
DriverManager.getConnection(strDriver_, userName_, passWord_);
} catch (Exception sqlEx) {
sqlEx.printStackTrace();
}
return conn_; }
public int storeProcedure(String storeProc)
{
String status = null;
try {
//Connection connection = getConnection();
//CallableStatement cstmt = connection.prepareCall("{call "+storeProc+"()}");
//cstmt.registerOutParameter(1,Types.INTEGER);
Connection conn= getConnection(); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); String sql="select * from r_Fgi_Rwdc"; ResultSet rs=stmt.executeQuery(sql); while(rs.next())
status = rs.getString("DEVICENO");
System.out.println("storeproce");
System.out.println(status);
rs.close();
stmt.close();
conn.close(); }
catch (Exception ex)
{
StringWriter buf = new StringWriter(1024);
ex.printStackTrace(); }
return 1;
}
public static void main(String[] args)
{
OracleConnect connect = new OracleConnect();
connect.storeProcedure("hwsc.sp_test");
}
}异常出错
java.lang.ArrayIndexOutOfBoundsException: 7
at oracle.security.o3logon.C1.r(C1)
at oracle.security.o3logon.C1.l(C1)
at oracle.security.o3logon.C0.c(C0)
at oracle.security.o3logon.O3LoginClientHelper.getEPasswd(O3LoginClientHelper)
at oracle.jdbc.ttc7.O3log.<init>(O3log.java:290)
at oracle.jdbc.ttc7.TTC7Protocol.logon(TTC7Protocol.java:251)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:252)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:365)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:260)
at java.sql.DriverManager.getConnection(DriverManager.java:512)
at java.sql.DriverManager.getConnection(DriverManager.java:171)
at com.oracle.test.OracleConnect.getConnection(OracleConnect.java:33)
at com.oracle.test.OracleConnect.storeProcedure(OracleConnect.java:48)
at com.oracle.test.OracleConnect.main(OracleConnect.java:76)
java.lang.NullPointerException
at com.oracle.test.OracleConnect.storeProcedure(OracleConnect.java:50)
at com.oracle.test.OracleConnect.main(OracleConnect.java:76)
jdbc:oracle:thin:@192.21.100.1:port:SID
status = rs.getString("DEVICENO");
System.out.println("storeproce");
System.out.println(status);
rs.close();
stmt.close();
conn.close(); }stmt跟conn都关闭了,如果rs.next()==true,就会报错。
stmt.close();
conn.close();
不要放在while循环中关闭,写在finally中
OracleConnect.java:50
第50行是哪一行?
就是这一行
没加上端口号
你改为:String strDriver_ = "jdbc:oracle:thin:@192.21.100.1:1521:SID";
试试看