// Connect Oracle Bean
package com;
import java.sql.*; public class ConnXYJFUPD {
String driverName = "oracle.jdbc.driver.OracleDriver";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String connURL= "jdbc:oracle:thin:@134.228.9.22:1521:xyjf";
String UserID = "xybill";
String Password = "becareful"; public ConnXYJFUPD() {
try {
Class.forName(driverName);
}
catch (java.lang.ClassNotFoundException e)
{
System.err.println("netzero(String):" + e.getMessage());
}
} public ResultSet executeQuery(String sql) {
try {
conn = DriverManager.getConnection(connURL, UserID, Password);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeQuery:" + ex.getMessage());
}
return rs;
} public ResultSet executeUpdate(String sql) {
try {
conn = DriverManager.getConnection(connURL, UserID, Password);
stmt=conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex){
System.err.println("aq.executeQuery:" + ex.getMessage());
}
return rs;
}
//下面这段一加就报错,不加就没问题
public int Update(final String SQL){
try
{
Connection Conn = Conn();
System.out.println(SQL);
Statement Smt = ConnXYJFUPD.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
int count = Smt.executeUpdate(SQL);
return count;
}
catch(SQLException e)
{
System.out.println("记录数量获取失败!");
return 0;
}
}
public boolean closeConn() {
try {
if (rs!=null) rs.close();
if (stmt!=null) stmt.close();
if (conn!=null) conn.close();
return true;
}
catch ( SQLException ex )
{
System.err.println("closeConn:" + ex.getMessage());
return false;
}
} public static void main(String args[]) {
new ConnXYJFUPD();
}
} public int Update(final String SQL){
try
{
Connection Conn = Conn();
System.out.println(SQL);
Statement Smt = ConnXYJFUPD.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
int count = Smt.executeUpdate(SQL);
return count;
}
catch(SQLException e)
{
System.out.println("记录数量获取失败!");
return 0;
}
}这段加了就会报错,其目的是对数据库表进行更新的操作,请教大家!50分献上。
找不到符号
Connection Conn = Conn();
Conn()这个方法定义了吗?没看到啊
改成
Connection Conn=ConnXYJFUPD();
就可以了?
ConnXYJFUPD(); 定义了哦
Connection Conn = Conn();
改为
conn = DriverManager.getConnection(connURL, UserID, Password);
或者专门做个方法
还有就是,楼主的这个类做得很差
都没有调用关闭连接的方法
另个在关闭连接的方法中,最好每个关闭对象都使用一个单独的try块
这样避免了有一个关闭不到,其他的也相应关闭不到的缺点
import java.sql.*;public class Lab3
{
public static void main(String[] args){
Connection con = null;
Statement stmt = null; String driverName =
"oracle.jdbc.driver.OracleDriver";
String url =
"jdbc:oracle:thin:@192.168.0.23:1521:tarena";
String usr = "openlab";
String pwd = "open123";
try{
//1.注册驱动
Class.forName(driverName);
//2.创建连接对象
con = DriverManager.getConnection(url,usr,pwd);
System.out.println("con->"+con); //3.创建数据库操作对象
stmt = con.createStatement();
System.out.println("stmt->"+stmt); //4.操作数据库(创建表,插入一条记录)
String sql = "drop table "+args[0];
int num = -1;
try{
num = stmt.executeUpdate(sql);
System.out.println("drop table "+num);
}catch(Exception ex){
System.out.println("表"+args[0]+"不存在");
}
sql =
"create table "+args[0]+"(id number(8) primary key,"
+"name varchar(15))";
num = stmt.executeUpdate(sql);
System.out.println("table "+
args[0]+" created! "+num); sql = "insert into "+args[0]+
" values(1,'Mike')";
num = stmt.executeUpdate(sql);
System.out.println("insert "+num+
" record"); }catch(Exception e){
e.printStackTrace();
}finally{
//6.关闭JDBC对象
try{
if(stmt!=null) stmt.close();
}catch(Exception ex){
ex.printStackTrace();
}
try{
if(con!=null) con.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
}