Statement和ResultSet
Posted 小猫钓鱼吃鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Statement和ResultSet相关的知识,希望对你有一定的参考价值。
statement、prepareStatement、callableStatement的使用
1.带?参数的使用prepareStatement。这也是使用最多的。
2.不带参数,例如查所用,不需要到任何参数。使用statement。
3.调用存储过程的CallableStatement。
Statement:Statement 是 Java 执行数据库操作的一个重要方法,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。Statement对象,用于执行不带参数的简单SQL语句。
通过JDBC向指定的数据表中插入一条记录,需要注意下面的几点:
* 1.Statement:用于执行SQL语句的对象 * 1).通过COnnection的createStatement()方法来获取 * 2).通过excuteUpdate(sql)可以执行SQL语句 * 3).传入的SQL可以是insert,update或者delete,但是不能是select
* 2.Connection、Statement都是应用程序和数据库服务器的连接 资源,使用后一定要关闭 * 需要在finally中关闭Connection和Statement对象 * 异常可以不处理,但是连接一定要关闭 * 3.关闭的顺序:先关闭后获取的,即先关闭Statement,后关闭Connection
1 通过statement 进行的insert delete update 操作;
statement 接口提供了三种执行sql的方法 executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。
方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。
方法 executeUpdate 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。
executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
方法 execute 用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能,所以本概述后面将在单独一节中对其进行介绍。
conn=sh.getConnect(); //链接数据库
String sql_update="UPDATE dbo.fm_userinfo SET pwd=\'1234\' WHERE id=1";//定义sql语句
String sql_insert="INSERT INTO dbo.fm_userinfo( name, pwd )VALUES(\'wangwu\',\'wangwu\')";//定义sql语句
statement=conn.createStatement();//建立用于执行SQL语句的对象
statement.execute(sql_update);//执行sql语句
statement.execute(sql_insert);
System.out.println("更新操作成功执行!");
2 通过ResultSet执行查询操作
/** * ResultSet:结果集,封装了使用JDBC进行查询的结果 * 1.调用Statement对象的excuteQuery(sql)方法可以得到结果集 * 2.ResultSet返回的实际上就是一张数据表,有一个指针 * 指向数据表的第一样的前面,可以调用next()方法检测下一行是否有效,若有效则返回true * ,并且指针下移,相当于迭代器对象的hasNext()和next()的结合体 * 3.当指针对位到确定的一行时,可以通过调用getXxx(index)或者getXxx(columnName) * 获取每一列的值,例如:getInt(1),getString("name") * 4.ResultSet当然也需要进行关闭 */
Statement 对象
一旦我们获得了数据库的连接,我们就可以和数据库进行交互。JDBC 的 Statement,CallableStatement 和 PreparedStatement 接口定义的方法和属性,可以让你发送 SQL 命令或 PL/SQL 命令到数据库,并从你的数据库接收数据。
在数据库中,它们还定义了帮助 Java 和 SQL 数据类型之间转换数据差异的方法。
下表提供了每个接口的用途概要,根据实际目的决定使用哪个接口。
接口 | 推荐使用 |
---|---|
Statement | 可以正常访问数据库,适用于运行静态 SQL 语句。 Statement 接口不接受参数。 |
PreparedStatement | 计划多次使用 SQL 语句, PreparedStatement 接口运行时接受输入的参数。 |
CallableStatement | 适用于当你要访问数据库存储过程的时候, CallableStatement 接口运行时也接受输入的参数。 |
以上是关于Statement和ResultSet的主要内容,如果未能解决你的问题,请参考以下文章
何时关闭 JDBC 中的 Connection、Statement、PreparedStatement 和 ResultSet
在Java中 Connection、Statement、ResultSet 、PreparedSta