execute、executeupdate、executequery三者的区别
2016-02-25 14:45
477 查看
JDBC中Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。
一、boolean execute(String sql)
允许执行查询语句、更新语句、DDL语句。
返回值为true时,表示执行的是查询语句,可以通过getResultSet方法获取结果;
返回值为false时,执行的是更新语句或DDL语句,getUpdateCount方法获取更新的记录数量。
例子:
st = con.createStatement();
boolean ret = st.execute(“select username,age from employee”);
//boolean ret = st.execute(“update employee set age=10”);
con.commit();
if (ret == true) {
System.out.println(“获取的结果集是:”);
ResultSet rs = st.getResultSet();
while (rs.next()) {
System.out.println(rs.getString(1) + “:” + rs.getInt(2));
}
rs.close();
} else {
System.out.println(“更新的结果是:” + st.getUpdateCount());
}
二、int executeUpdate(String sql)
执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL
4000
语句)。返回值是更新
的记录数量
例如 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);
三、ResultSet executeQuery(String sql)
执行给定的 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));
}
一、boolean execute(String sql)
允许执行查询语句、更新语句、DDL语句。
返回值为true时,表示执行的是查询语句,可以通过getResultSet方法获取结果;
返回值为false时,执行的是更新语句或DDL语句,getUpdateCount方法获取更新的记录数量。
例子:
st = con.createStatement();
boolean ret = st.execute(“select username,age from employee”);
//boolean ret = st.execute(“update employee set age=10”);
con.commit();
if (ret == true) {
System.out.println(“获取的结果集是:”);
ResultSet rs = st.getResultSet();
while (rs.next()) {
System.out.println(rs.getString(1) + “:” + rs.getInt(2));
}
rs.close();
} else {
System.out.println(“更新的结果是:” + st.getUpdateCount());
}
二、int executeUpdate(String sql)
执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL
4000
语句)。返回值是更新
的记录数量
例如 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);
三、ResultSet executeQuery(String sql)
执行给定的 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));
}
相关文章推荐
- Google推出iOS功能性UI测试框架EarlGrey
- Leetcode 225:Implement Stack using Queues
- iOS的UDID废用以及UUID配合keychain的替换方案实现
- 彻底抛弃脚本录制,LR脚本之使用web_custom_request函数自定义
- iPhone开发之UIView中的动画属性
- iOS之UIScrollView循环滚动
- ${pageContext.request.contextPath} JSP取得绝对路径
- BlueStore 介绍
- iOS 性能优化之 UIScrollView 实践经验
- Java基础:Day14笔记内容 ( StringBuilder类)
- 分布式消息队列(Message Queue)系统:kafka
- IOS UI-UISearchController
- String,StringBuffer与StringBuilder的区别??
- UITextField修改placeholder的大小和颜色
- 原生的强大DOM选择器querySelector
- CUDA issue:cudaGetDeviceCount()错误
- LeetCode -- Unique Paths II
- LeetCode -- Unique Paths
- Cordova使用build命令出错: Could not create the Java Virtual Machine.
- 通过UIGraphics重新设置image的大小