数据源:database1数据库中的一个表是:s 
下面是一个更新语句,但是,执行后,数据库中的表却没没有任何变化,为什么啊?
在access和oracle 中的效果都一样,虽然我知道我的代码有问题,但是我却找不到哪里有错????import java.sql.*; class DBtest { Statement stmt;
Connection con=null;
String url = "jdbc:odbc:Database1";
public DBtest(){
try {
String s1 ="小雨";
String sex ="女";
url = new String("jdbc:odbc:Database");
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

stmt.executeUpdate("Update S set Sname = 'yy' where Sno = '001'");

System.out.println("Success");

} catch (ClassNotFoundException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (SQLException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public static void main(String []args){
new DBtest();
}

}

解决方案 »

  1.   

    stmt还没实例化
    jdbc步骤
    1 检测驱动
    2 获取connection
    3 获取statement
    4 执行sql你现在只做了第一步 ,然后企图执行第四步
    所以会出错
      

  2.   

    你是怎么取得connection的?有没有把修改默认的自动提交属性?感觉很想是没有commit造成的
      

  3.   

    还是不行:
    刚是我帖错了
    import java.sql.*; class DBtest { Statement stmt;
    Connection con=null; ResultSet rs;
    String url = "jdbc:odbc:Database1";
    public DBtest(){
    try {
    String s1 ="小雨";
    String sex ="女";
    url = new String("jdbc:odbc:Database1");
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    con =DriverManager.getConnection(url,"","");
    stmt =con.createStatement();
        rs = stmt.executeQuery("select*from S where Sno= '001'");
        while(rs.next())
        {
         System.out.println(rs.getString(1));
         System.out.println(rs.getString(2));
         System.out.println(rs.getString(3));
        }

    stmt.executeUpdate("Update S set Sname = 'yy' where Sno = '001'");

    System.out.println("Success");

    } catch (ClassNotFoundException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }
    }
    public static void main(String []args){
    new DBtest();
    }

    }
      

  4.   

    我记的在执行第二条语句的时候 要把第一个Statement关掉 再获取一个Statement才可以的吧
      

  5.   

    你的stmt和conn有得到吗
    conn=DriverManager.getConnection(url);
    stmt=conn.createStatement();还有你的连接最后都没有关闭
      

  6.   

    rs = stmt.executeQuery("select*from S where Sno= '001'"); sql语句都连在一起了,肯定查询不了
      

  7.   

    jdbc步骤
    1 检测驱动
    2 获取connection
    3 获取statement
    4 执行sql
    5 关闭 连接 
    且 2-5 步骤都可能产生异常 
      

  8.   

    估计你是在ECLIPSE下直接执行的吧,如果是的话把ECLIPSE关掉,然后在去看一下,应该就可以了