日期:2014-05-17  浏览次数:20901 次

用JDBC实现数据库的增删改查出现问题
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class WorkerDao {

/**
 * @param args
 */
static Connection con;
static Statement st;
static ResultSet rs;
//连接
public void connectDB(){
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL",
"test","test");
 st=con.createStatement();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

//插入
public void insertData(String name,int age,String statement){
this.connectDB();
try {
String sql="insert into test.worker(name,age,statement) values ('"+name+"',"+age+",'"+statement+"')";
rs=st.executeQuery(sql);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.closeConnection();
}

}


//删除
public void deleteData(int id){
this.connectDB();
try {
rs=st.executeQuery("delete from worker w where w.id="+id+";commit;");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.closeConnection();
}


}


//修改
public void updateData(int id,String name,int age,String statement){
this.connectDB();
try {
rs=st.executeQuery("update worker w set name='"+name+"',age='"+age+"',statement='"+statement+"' where w.id="+id);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.closeConnection();
}

}

//查询
public void selectData(){
this.connectDB();
try {
rs=st.executeQuery("select * from worker t");
while(rs.next()){
String name=rs.getString(1);
int age=rs.getInt(2);
String statement=rs.getString(3);
System.out.println(name+","+age+","+statement);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.closeConnection();
}
}
public void closeConnection(){
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {//测试类
WorkerDao wd=new WorkerDao();
//查询(成功)
wd.selectData();
//增加(成功)
wd.insertData("张大大", 22, "试一试");
//删除(失败:无效字符??)
wd.deleteData(4);
//更新(失败:无效ID)
wd.updateData(1, "ddd", 45, "dasdasd");
}
}
求解!!!!