对数据库进行增删改和获得表中所有信息,方法调用怎么就不对啊!
public class StudentDAO {
static Statement stat;
static String sql;
static int id;
static int age;
static String name;
static Connection conn ;
static ResultSet rs;
static PreparedStatement ps;
//public StudentDAO(){
//}
public static Connection getConnection(){
Connection conn;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
try {
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.192.192.249:1521:orcl" ,"zhangxc","zhangxc");
return conn;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
return null;
}
}
public static void getAll(int id,String name,int age) throws SQLException{
try {
sql = "select * from student";
rs = stat.executeQuery(sql);
while (rs.next()) {
int id1 = rs.getInt(1);
String name1 = rs.getString(2);
int age1 = rs.getInt(3);
System.out.println("id:" + id + " name:" + name + " age:" + age);
// return "id:" + id + " name:" + name + " age:" + age;
}
} catch (SQLException e) {
//return "";
System.out.println("查询失败");
}
}
public static void get() throws SQLException {
try {
String id = javax.swing.JOptionPane.showInputDialog(null, "请输入学号");
sql = "select * from student where id=?";
//ResultSet rs = stat.executeQuery(sql);
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, id);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
String idd =rs.getString(1);
String name = rs.getString(2);
int age = rs.getInt(3);
System.out.println("id:" + id + " name:" + name + " age:" + age);
}
} catch (SQLException e) {
System.out.println("查询失败");
}
}
public static void save() throws SQLException {
try {
//sql="insert into student(id,name,age) values('1','张三','2')";
// i=stat.executeUpdate(sql);
//System.out.println("插入成功");
String id = javax.swing.JOptionPane.showInputDialog(null, "请输入学号");
String name = javax.swing.JOptionPane.showInputDialog(null, "输入姓名");
String age = javax.swing.JOptionPane.showInputDialog(null, "请输入年龄");
sql = "insert into student(id,name,age) values(?,?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, id);
ps.setString(2, name);
ps.setString(3, age);
int i = ps.executeUpdate();
System.out.println("添加成功");
} catch (SQLException e) {
System.out.println("添加失败");
}
}
public static void update() throws SQLException {
try {
// sql="update student set name=? where id=?";
// i=stat.executeUpdate(sql);
// System.out.println("修改成功");
// PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
// SET SALARY = ? WHERE ID = ?");
// pstmt.setBigDecimal(1, 153833.00)
// pstmt.setInt(2, 110592)
String id = javax.swing.JOptionPane.showInputDialog(null, "请输入要改的学号");
String name = javax.swing.JOptionPane.showInputDialog(null, "请输入改后的名字");
sql = "update student set name=? where id=? ";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setObject(1, name);
ps.setString(2, id);
//ps.setString(1, ID);
//ps.setString(2, NAME);
//ps.setString(3, AGE);
int i = ps.executeUpdate();
System.out.println("修改成功");
} catch (SQLException e) {
System.out.println("修改失败");
}
}
public static void delete() throws SQLException {
try {
// sql="delete from student where id=?";
// i=stat.executeUpdate(sql);
// System.out.println("删除成功");
String id = javax.swing.JOptionPane.showInputDialog(null, "请输入学号");
String name = javax.swing.JOptionPane.showInputDialog(null, "输入姓名");
String age = javax.swing.JOptionPane.showInputDialog(null, "请输入年龄");
sql = "delete from student where id=? and name=? and age=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, id);
ps.setString(2, name);
ps.setString(3, age);
int i = ps.executeUpdate();
System.out.println("删除成功");
} catch (SQLException e) {
System.out.println("删除失败");
}
}
public static void main(String[] args) throws Exception {
Connection conn = getConnection();
Statement stat = conn.createStatement();
//PreparedStatement ps;
getAll(id, name, age);
get();
save();
update();
delete();
[解决办法]
static Statement stat
你的这些静态变量都没有赋值,你那些方法里就直接调用了
[解决办法]
楼主试试下面的代码能不能正常跑出来,如果不能跑把异常信息贴出来,再讨论
import java.sql.*;/** * Created by IntelliJ IDEA. * User: admin * Date: 2011-9-8 * Time: 10:01:17 * To change this template use File | Settings | File Templates. */public class StudentDAO { static Statement stat; static String sql; static int id; static int age; static String name; static Connection conn ; static ResultSet rs; static PreparedStatement ps;//public StudentDAO(){//} public static Connection getConnection(){// Connection conn; try { Class.forName("oracle.jdbc.driver.OracleDriver"); try { conn = DriverManager.getConnection("jdbc:oracle:thin:@192.192.192.249:1521:orcl" ,"zhangxc","zhangxc"); return conn; } catch (SQLException e) { e.printStackTrace(); return null; } } catch (ClassNotFoundException e) { e.printStackTrace(); return null; } } public static void getAll(int id,String name,int age) throws SQLException{ try { sql = "select * from student"; rs = stat.executeQuery(sql); while (rs.next()) { int id1 = rs.getInt(1); String name1 = rs.getString(2); int age1 = rs.getInt(3); System.out.println("id:" + id + " name:" + name + " age:" + age); // return "id:" + id + " name:" + name + " age:" + age; } } catch (SQLException e) {//return ""; System.out.println("查询失败"); } } public static void get() throws SQLException { try { String id = javax.swing.JOptionPane.showInputDialog(null, "请输入学号"); sql = "select * from student where id=?";//ResultSet rs = stat.executeQuery(sql); PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, id); ResultSet rs = ps.executeQuery(); while (rs.next()) { String idd =rs.getString(1); String name = rs.getString(2); int age = rs.getInt(3); System.out.println("id:" + id + " name:" + name + " age:" + age); } } catch (SQLException e) { System.out.println("查询失败"); } } public static void save() throws SQLException { try {//sql="insert into student(id,name,age) values('1','张三','2')";// i=stat.executeUpdate(sql);//System.out.println("插入成功"); String id = javax.swing.JOptionPane.showInputDialog(null, "请输入学号"); String name = javax.swing.JOptionPane.showInputDialog(null, "输入姓名"); String age = javax.swing.JOptionPane.showInputDialog(null, "请输入年龄"); sql = "insert into student(id,name,age) values(?,?,?)"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, id); ps.setString(2, name); ps.setString(3, age); int i = ps.executeUpdate(); System.out.println("添加成功"); } catch (SQLException e) { System.out.println("添加失败"); } } public static void update() throws SQLException { try {// sql="update student set name=? where id=?";// i=stat.executeUpdate(sql);// System.out.println("修改成功");// PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES // SET SALARY = ? WHERE ID = ?"); // pstmt.setBigDecimal(1, 153833.00) // pstmt.setInt(2, 110592) String id = javax.swing.JOptionPane.showInputDialog(null, "请输入要改的学号"); String name = javax.swing.JOptionPane.showInputDialog(null, "请输入改后的名字"); sql = "update student set name=? where id=? "; PreparedStatement ps = conn.prepareStatement(sql); ps.setObject(1, name); ps.setString(2, id);//ps.setString(1, ID);//ps.setString(2, NAME);//ps.setString(3, AGE); int i = ps.executeUpdate(); System.out.println("修改成功"); } catch (SQLException e) { System.out.println("修改失败"); } } public static void delete() throws SQLException { try {// sql="delete from student where id=?";// i=stat.executeUpdate(sql);// System.out.println("删除成功"); String id = javax.swing.JOptionPane.showInputDialog(null, "请输入学号"); String name = javax.swing.JOptionPane.showInputDialog(null, "输入姓名"); String age = javax.swing.JOptionPane.showInputDialog(null, "请输入年龄"); sql = "delete from student where id=? and name=? and age=?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, id); ps.setString(2, name); ps.setString(3, age); int i = ps.executeUpdate(); System.out.println("删除成功"); } catch (SQLException e) { System.out.println("删除失败"); } } public static void main(String[] args) throws Exception { getConnection(); stat = conn.createStatement(); //PreparedStatement ps; getAll(id, name, age); get(); save(); update(); delete(); rs.close(); stat.close(); conn.close(); }}