(4)JDBC的Statement对象使用

来源:互联网 发布:剑灵灵族捏脸数据免费 编辑:程序博客网 时间:2024/06/06 05:11

一 Statement使用分析

Statement对象用于处理无参查询(普通查询),使用步骤如下:

1. 创建Statement对象

通过Connection对象的createStatement()方法创建Statement对象。eg:

Statement st = conn.createStatement();

2. 设置基本选项

在创建完Statement对象后,可以通过该对象的一些方法,设置需要的属性。

Statement对象设置方法如下:

eg:

Statement st = conn.createStatement();
st.setMaxRows(10);// 设置最大返回行数,这里设置10条

3. 执行查询SQL

查询可以使用Statement对象的executeQuery()和execute()方法。

两个方法的参数均为一个拼接好的String类型字符串SQL。

executeQuery()方法只能执行一条SQL,返回ResultSet对象。


execute()方法应该仅在语句能返回多个 ResultSet 对象、

多个更新计数或ResultSet对象与更新计数的组合时使用。

可以通过getResultSet获取ResultSet对象等等。

4. executeUpdate方法

executeUpdate()方法 用于执行 INSERT、UPDATE 或 DELETE 语句

以及 SQLDDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE

或DELETE语句的效果是修改表中零行或多行中的一列或多列,可以根据返回结果判断是否执行成功

executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。

对于CREATE TABLE 或DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零,

所以不能因为其返回0就认为没有成功。

eg:

// 测试executeUpdate
 int resultCount =

st.executeUpdate(" UPDATE t_user_main SET userPwd = 'testExecuteUpdate' "
 + "WHERE oid = '1' ");

5. 关闭Statement对象

调用Statement对象的close()方法。

二 Statement使用实例

1. 创建t_user_main表

CREATE TABLE `t_user_main` (  `oid` varchar(32) NOT NULL COMMENT '主键',  `userName` varchar(255) DEFAULT NULL COMMENT '用户名',  `userPwd` varchar(255) DEFAULT NULL COMMENT '登陆密码',  PRIMARY KEY (`oid`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. 插入数据

INSERT INTO t_user_main (oid,userName,userPwd) VALUES ('1','one','111111'),('2','two','222222');

3. java代码示例

package com.lanhuigu.JavaBase.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class JdbcStatementTest {public static void main(String[] args) {String user = "root";        String password = "lanhuigu";        /*         * useUnicode=true:表示使用Unicode字符集          * characterEncoding=UTF8:字符编码方式          * allowMultiQueries=true:是否允许批量处理          */        String url = "jdbc:mysql://127.0.0.1:3306/lanhuigu_web?useUnicode=true"        + "&characterEncoding=UTF8&allowMultiQueries=true";        String driver = "com.mysql.jdbc.Driver";                 try {            //1.加载驱动程序            Class.forName(driver);            //2.建立连接            Connection conn = DriverManager.getConnection(url, user, password);            //3.创建Statement对象            Statement st = conn.createStatement();            st.setMaxRows(10);// 设置最大返回行数,这里设置10条            String sql = " SELECT oid, userName, userPwd FROM t_user_main ";            //4.查询--返回查询结果            ResultSet rs = st.executeQuery(sql);            //5.打印查询结果            while (rs.next()) {System.out.println("oid:"+rs.getString("oid") + ", userName:" + rs.getString("userName") + ", userPwd:" + rs.getString("userPwd"));}            // 测试executeUpdate            int resultCount =             st.executeUpdate(" UPDATE t_user_main SET userPwd = 'testExecuteUpdate' "            + "WHERE oid = '1' ");// 从数据库查询,验证是否成功            System.out.println("executeUpdateResult:" + resultCount);            //6.关闭连接            st.close();// 关闭Statement对象            conn.close();// 关闭数据库连接        } catch (Exception e) {            System.out.println("数据库连接失败");        }}}
控制台打印:


关于executeUpdate()方法执行后的数据库效果,oid为1的userPwd成功被更新,

同时,在程序控制台打印更新结果为1,说明更新影响数据行数为1:

阅读全文
0 0