JDBC学习-Statement
来源:互联网 发布:javascript 表格并排放 编辑:程序博客网 时间:2024/06/05 16:16
简介
Statement对象用来执行一条SQL语句并且返回产生的结果集。
默认状态下,一个statement对象在同一时刻只能开启一个结果集。因此,如果对不同结果集的读取交织在一起,那么每一个读取必须由不同的statement对象组成。所有Statement接口的执行方法暗中会关闭当前statement的结果集对象(如果存在一个开启的结果集)。
创建Statement对象
可以通过Connection对象的createStatement来得到一个statement对象
Statement stmt = conn.createStatement();
创建了一个向数据库发送SQL语句的Statement对象。不带参数的SQL语句通常使用Statement对象来执行。如果相同的SQL语句会被执行若干次的话,使用PreparedStatement对象会更有效率。
使用返回的Statement对象创建的结果集合默认是TYPE_FORWARD_ONLY类型,并且具有CONCUR_READ_ONLY的并发级别。创建的结果集的可保存性可以通过调用getHoldability()来决定。
调用执行方法SQL语句方法:
语法:ResultSet executeQuery(String sql):
说明:执行给定的SQL语句,返回单一的结果集。只能进行查询操作,不能执行操作语句。否则会报异常“java.sql.SQLException: Can not issue data manipulation statements with executeQuery().”
参数说明:String sql:用于查询的SQL语句
返回:查询结果集
示例:
ResultSet rs = stmt.executeQuery(" SELECT * FROM user ");while(rs.next()) {System.out.println(rs.getString("name"));}
如果要传递参数,则必须手动拼接字符串
例如
String sql = " SELECT * FROM user WHERE name='" + name = "'";ResultSet rs = stmt.executeQuery(sql);
executeUpdate
语法:int executeUpdate(sql);
说明:执行给定的SQL语句,可以是INSERT、UPDATE、DELETE语句或者什么也不返回的语句,例如SQL DDL语句
这个方法不能够被PreparedStatement或者CallableStatement对象调用
返回:受影响的行数或者或者0(什么也不返回的语句)
例如:
String sql = " INSERT INTO user(name) VALUES('sy') ";int count = stmt.executeUpdate(sql);
语法:int executeUpdate(String sql,int autoGeneratedKeys)
执行给定的SQL语句,并且指定是否将生成的主键绑定到该Statement对象。如果不是INSERT的SQL语句或者不是返回主键的SQL语句,那么驱动将会忽略flag标志。
autoGeneratedKeys:代表是否返回主键的标志,可从以下2个值中二选一
1、Statement.RETURN_GENERATED_KEYS,表示把主键绑定到statement对象
2、Statement.NO_GENERATED_KEYS,表示不把主键绑定到statement对象
示例:
<span style="font-size: 14px;">String sql = " INSERT INTO user(name) VALUES('sy') ";stmt.executeUpdate(sql, Statement.RETURN_GENERATED_KEYS);ResultSet rs = stmt.getGeneratedKeys();if (rs.next()) {System.out.println(rs.getInt(1));}</span>
其中如果flag赋值Statement.NO_GENERATED_KEYS或者只调用stmt.executeUpdate(sql)方法,将不会得到主键值,取而代之会报异常Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.executeUpdate() or Connection.prepareStatement().
- JDBC学习-Statement
- JDBC学习笔记(2)之statement
- jdbc statement
- JDBC-Statement
- JDBC Statement
- jdbc statement
- JDBC学习笔记之dml语句(PreparedStatement&Statement)
- JDBC学习第一站之Statement与PreparedStatement
- JDBC学习笔记(3)—Statement执行SQL语句
- JDBC 之 Statement 对象
- JDBC 之 Statement 对象
- JDBC (二) -- Statement对象
- JDBC-Statement的批处理
- JDBC中Statement简介
- JDBC基础教程之Statement
- jdbc中statement 详解
- JDBC Callable Statement--转载
- JDBC --Statement(添加)
- NetBPM工作流Q&A
- Flash AS 2.0右键菜单问题
- sqlite3使用入门
- revit链接文件操作
- uva 580 Critical Mass(递推)
- JDBC学习-Statement
- 关于 node.js 连接 mysql
- 使用cv::findFundamentalMat要注意的几点
- iOS打开复制文字,链接,图片到粘贴板
- iOS剪切板、长按复制
- bootstrap 学习笔记 - 5 (Glyphicons字体 + 下拉菜单 + 按钮组+ 按钮下拉菜单)
- Java语言描述:回溯法之批处理作业调度
- 推荐学习网站
- 黑马程序员_java语言_IO其他流