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();
		}
	}
}

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • leetcode-146. LRU 缓存机制(hash+双向链表)

    leetcode-146. LRU 缓存机制(hash+双向链表)运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。实现 LRUCache 类:LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。void put(int key, int value) 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字-值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久

  • windows cmd 查看端口占用[通俗易懂]

    windows cmd 查看端口占用[通俗易懂]一、netstat-a-o二、tasklist|findstr”aaaa”

  • 计算机教育中缺失的一课,劝学弟学妹们一句,一定要趁早补上,工作后会事半功倍!「建议收藏」

    计算机教育中缺失的一课,劝学弟学妹们一句,一定要趁早补上,工作后会事半功倍!「建议收藏」各位学弟学妹们好,作为稍微年长的我(岁月是把杀猪刀啊),今天就给大家补补课。在大学里的,我们上的计算机专业课程一般都是像操作系统、编译原理、计算机组成原理、计算机网络这些理论课程,还有一些像C语言、Java、.Net这些可以实践的课程,甚至还有可能让你焊一个收音机,但是对于一些基本习惯却很容易被忽略,需要学弟学妹们自行摸索。实际上,一些好的基本习惯是时时刻刻在影响着我们自己的,不仅是在学校的学习生活中,还是在毕业后的工作生活中。今天我要给大家说就是,使用键盘的习惯。有的同学可能会诧异,键盘谁不会用啊,

  • IGMP协议_igmp协议常用3种报文

    IGMP协议_igmp协议常用3种报文IGMP介绍

  • 1.注册或登录页面设计:UILabel,UIButton,UITextField

    1.注册或登录页面设计:UILabel,UIButton,UITextField

  • pytorch dropout用法

    pytorch dropout用法链接:https://www.zhihu.com/question/67209417/answer/302434279刚踩的坑,差点就哭出来了TT.—我明明加了一百个dropout,为什么结果一点都没变使用F.dropout(nn.functional.dropout)的时候需要设置它的training这个状态参数与模型整体的一致.比如: Cla…

发表回复

您的电子邮箱地址不会被公开。

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