execute,executeQuery和executeUpdate的区别

execute,executeQuery和executeUpdate的区别在jdbc中有3种执行sql的语句分别是execute,executeQuery和executeUpdateexecute执行增删改查操作execute返回的结果是个boolean型,当返回的是true的时候,表明有ResultSet结果集,通常是执行了select操作,当返回的是false时,通常是执行了insert、update、delete等操作。execute通常用于执行不明确的s

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在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等操作



实例如下:

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.net/180154.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 磁盘阵列恢复方法以及注意事项

    磁盘阵列恢复方法以及注意事项想要弄清楚磁盘阵列恢复,首先就得知道什么是磁盘阵列,磁盘阵列多用于存储服务器,数据服务器等企业级大数据存储领域,磁盘阵列是把多块独立的物理硬盘按不同方式组合起来形成一个逻辑硬盘,当磁盘瘫痪或硬件损坏后,为了恢复存储在阵列平台的数据被称之为磁盘阵列数据恢复,而磁盘阵列能够提供比单个硬盘有着更高的性能和提供数据冗余的技术。  对于做数据恢复人员来讲,最怕的是什么,那就是在客户发现数据丢失后,没有停

    2022年4月29日
    90
  • TCP协议中的三次握手和四次挥手(图解)

    TCP协议中的三次握手和四次挥手(图解)

    2021年12月16日
    37
  • pycharm导入自定义模块_模块导入速度python

    pycharm导入自定义模块_模块导入速度pythonPycharm是很多Python开发者的首选IDE,如果能把一个工具熟练运用,往往有事半功倍的效果,各种快捷键、重构功能、调试技巧。由于Python是一门动态语言,对于自动导入包模块没有静态语言那么方便,但是我们有了Pycharm,还是可以很强大的。平时写代码的时候,要引用系统自带的模块或者是第三方模块,甚至是项目中其它地方的模块,有时候代码快写了一整屏,为了把一个模块导入进来,我们不得不把光标

    2022年8月26日
    5
  • MTCNN工作原理「建议收藏」

    MTCNN工作原理「建议收藏」MTCNN工作原理MTCNN是什么MTCNN,Multi-taskconvolutionalneuralnetwork(多任务卷积神经网络),将人脸区域检测与人脸关键点检测放在了一起,基于cascade框架。总体可分为PNet、RNet、和ONet三层网络结构,MTCNN实现流程构建图像金字塔首先讲图像进行不同尺度的变换,构建图像金字塔,以适应不同大小的人脸的进行检测。…

    2022年6月18日
    30
  • 组函数及分组统计[通俗易懂]

    组函数及分组统计

    2022年2月1日
    42
  • CListCtrl自绘「建议收藏」

    CListCtrl自绘「建议收藏」CListCtrl自绘有3种方法:第一种:使用WM_ERASEBKGND消息+NM_CUSTOMDRAW消息配合自绘WM_ERASEBKGND消息中绘制背景色,比如偶数行为灰色,奇数行为白色。NM_CUSTOMDRAW消息中设置字体的背景色和字体颜色。好处:保留了控件大多数的原有属性。不需要自己去输出每一个项目的字体。可以非常方便的设置背景色,以及文字的颜色。缺点:不能设置选中

    2022年6月23日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号