前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >execute,executeQuery和executeUpdate的区别

execute,executeQuery和executeUpdate的区别

作者头像
全栈程序员站长
发布2022-11-03 10:11:07
6410
发布2022-11-03 10:11:07
举报
文章被收录于专栏:全栈程序员必看

在jdbc中有3种执行sql的语句分别是execute,executeQuery和executeUpdate

execute执行增删改查操作

execute返回的结果是个boolean型,当返回的是true的时候,表明有ResultSet结果集,通常是执行了select操作,当返回的是false时,通常是执行了insert、update、delete等操作。execute通常用于执行不明确的sql语句。

executeQuery执行查询操作

executeQuery返回的是ResultSet结果集,通常是执行了select操作。

executeUpdate执行增删改操作

executeUpdate返回的是int型,表明受影响的行数,通常是执行了insert、update、delete等操作。

实例如下:

代码语言:javascript
复制
package javaTest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class ConnDataBase {
public static void main(String[] args) {
execute();//增删改查
//		executeQuery();//excuteQuery 查
//		executeUpdate();//excuteUpdate 增删改
}
/**
* 获取连接
* @return 连接对象
*/
public static Connection getConnection(){
Connection con = null;
try {
Class.forName("oracle.jdbc.OracleDriver");//获取oracle驱动
con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "ssh1", "ssh1");///填入url,用户名,密码
}catch(Exception e){
e.printStackTrace();
}
return con;
}
/**
* 用executeUpdate执行增删改操作
*/
public static void executeUpdate(){
Connection con=null;
try {
con=getConnection();
String sql="insert into student(s#,sname,sage,ssex) values('7','哈7','27','男')";
//			String sql="delete from student where s#='7'";
//			String sql="update student set sname='呵7' where s#='7'";
Statement st=con.createStatement();//创建用于执行静态的statement对象
int count=st.executeUpdate(sql);//执行sql插入(删除、更新)语句,返回插入的行数
System.out.println("插入(删除、更新)"+count+"条数据");
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 用executeUpdate执行查询操作
*/
public static void executeQuery(){
Connection con = null;
try {
con = getConnection();
String sql = "select * from Student";
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
ResultSetMetaData rsmd = rs.getMetaData();//用于分析结果集的元数据接口
int columnCount = rsmd.getColumnCount();//列数
for(int i=0;i<columnCount;i++){
System.out.print(rs.getString(i+1)+" ");     	
}
System.out.println();
}
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 用execute执行增删改查操作
*/
public static void execute(){
Connection con = null;
try {
con = getConnection();
String sql = "select * from Student";
//			String sql="insert into student(s#,sname,sage,ssex) values('7','哈7','27','男')";
//			String sql="delete from student where s#='7'";
//			String sql="update student set sname='呵7' where s#='7'";
Statement st = con.createStatement();
boolean hasResultSet = st.execute(sql);
if(hasResultSet){
ResultSet rs=st.getResultSet();
while (rs.next()) {
ResultSetMetaData rsmd = rs.getMetaData();//用于分析结果集的元数据接口
int columnCount = rsmd.getColumnCount();//列数
for(int i=0;i<columnCount;i++){
System.out.print(rs.getString(i+1)+" ");     	
}
System.out.println();
}
}else{
int count=st.getUpdateCount();//受影响行数
System.out.println("插入(删除、更新)"+count+"条数据");
}
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/180154.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档