executeUpdate和executeQuery
/**
     * 作废用户信息
     * @param userIdIntArray
     */
    public void deleteUser(int[] userIdIntArray)
    {
        initDb();
        PreparedStatement pst = null;
        int tempFlag = 0;
        try {
            String sql = "UPDATE usertable SET user_display = 0 WHERE user_id = ?";
            pst = con.prepareStatement(sql);
            for(int i=0;i<userIdIntArray.length;i++)
            {
                pst.setInt(1, userIdIntArray[i]);
                tempFlag = pst.executeUpdate();
                System.out.println(tempFlag);
            }                   
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        finally
        {
            try {
                pst.close();
                con.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

 executeUpdate();不是无返回吗?为什么要用tempFlag = pst.executeUpdate();System.out.println(tempFlag);????

iteye_5246
iteye_5246 哥们。。。那么详细的说明,都看不懂,你采纳别人。。。
大约 8 年之前 回复

2个回答

1 executeUpdate 执行dml操作 结果是影响的行数,比如更新了几行,,通过这个我们可以判断是否成功

2 executeQuery 执行dql 结果是ResultSet(代表了返回的记录结果集)。

方法executeQuery
用于产生单个结果集(ResultSet)的语句,例如 SELECT 语句。 被使用最多的执行 SQL 语句的方法。这个方法被用来执行 SELECT 语句,它几乎是使用最多的 SQL 语句。但也只能执行查询语句,执行后返回代表查询结果的ResultSet对象。

如:

//加载数据库驱动

Class.forName("com.mysql.jdbc.Driver");

//使用DriverManager获取数据库连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test",
"root","1234");

//使用Connection来创建一个Statment对象
Statement stmt = conn.createStatement();

//执行查询语句
ResultSet rs =stmt.executeQuery("select * from teacher");

//把查询结果输出来

while (rs.next())

{

System.out.println(rs.getInt(1) + "/t" +    rs.getString(2)); 

}

2>方法executeUpdate

用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数(int),指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。

如:

//加载数据库驱动

Class.forName("com.mysql.jdbc.Driver");

//使用DriverManager获取数据库连接

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test",
"root","1234");

//使用Connection来创建一个Statment对象

Statement stmt = conn.createStatement();
//执行DML语句,返回受影响的记录条数

return stmt.executeUpdate(sql);

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐