我使用Java JDBC连接MySQL 5.1.32,使用驱动程序为<<mysql-connector-java-5.1.7-bin.jar>>。
当我使用SQL语句update数据时,MYSQL数据库里的数据没变,但在java.sql.Statement类执行executeUpdate()后,
程序返回给我的却是1,按Java文档里的说,数据库里有1行数据已经被改变了。但实际上是没有任何记录受到影响。
下面是用同一条UPDATA SQL语句,执行2次。执行第2次的时候,数据库的记录不可能被改变(因为第一次已经被改变了),
但我却得到的是1,即有1行受到影响。为什么会这样??我现在想行到这个java.sql.Statement.executeUpdate()值来判断数据库已发生改变,有其它办法实现吗?
=====================================================import com.mysql.jdbc.Connection;
import java.sql.DriverManager;
 
public class J {
 
    public static void main(String[] args) throws Exception {
        Connection cnn;
        String url = "jdbc:mysql://localhost:3306/opsdb";
        String user = "0193";
        String password = "123";
        Class.forName("com.mysql.jdbc.Driver");
        cnn = (Connection) DriverManager.getConnection(url, user, password);
        java.sql.Statement t = cnn.createStatement();
        String sql="Update history set action_user='01932' where id=75";
        int i1 = t.executeUpdate(sql);
        System.out.println("i1="+i1);
 
        int i2 = t.executeUpdate(sql);
        System.out.println("i2="+i2);
        t.close();
        cnn.close();
 
    }
}======================
程序输出如下:
i1=1
i2=1