当前位置: 首页 > news >正文

厦门网站建设兼职/seo网站排名软件

厦门网站建设兼职,seo网站排名软件,wordpress恶意广告,网上赚钱的方法🍎道阻且长,行则将至。🍓 目录 一、DriverManager 驱动管理类 1.注册驱动 2.获取数据库连接 二、Connection 数据库连接对象 1.获取执行对象 2.事务管理 三、Statement 1.执行DDL、DML语句 2.执行DQL语句 四、ResultSet 以JDBC快速…

🍎道阻且长,行则将至。🍓


 目录

一、DriverManager 驱动管理类

1.注册驱动

2.获取数据库连接

二、Connection 数据库连接对象

1.获取执行对象

2.事务管理

三、Statement

1.执行DDL、DML语句

2.执行DQL语句

四、ResultSet


以JDBC快速入门的例子为引,使用JDBC有驱动管理,连接对象,执行SQL、查询语句等,下面将对JDBC中常见API进行解释。

public static void main(String[] args) throws Exception {//1. 注册驱动Class.forName("com.mysql.jdbc.Driver");//2. 获取连接String url = "jdbc:mysql://127.0.0.1:3306/db1";String username = "root";String passd = "1234";Connection conn = DriverManager.getConnection(url, username, passd);//3. 定义sqlString sql = "update account set money = 2000 where id = 1";//4. 获取执行sql的对象 StatementStatement stmt = conn.createStatement();//5. 执行sqlint count = stmt.executeUpdate(sql);//受影响的行数//6. 处理结果System.out.println(count);//7. 释放资源stmt.close();conn.close();}

一、DriverManager 驱动管理类

1.注册驱动

在入门案例中我们使用的是:

Class.forName("com.mysql.jdbc.Driver");

先跳转到Driver具体来看,在mysql.jdbc中的Driver类中:

public class Driver extends NonRegisteringDriver implements java.sql.Driver {public Driver() throws SQLException {}static {try {DriverManager.registerDriver(new Driver());} catch (SQLException var1) {throw new RuntimeException("Can't register driver!");}}
}

静态代码块执行 DriverManager 对象的 registerDriver() 方法进行驱动的注册,只要加载 Driver 类,该静态代码块就会执行案例中的Class.forName("com.mysql.jdbc.Driver"); 就会加载 Driver 类。

p:在MySQL 5之后的驱动包,可以省略注册驱动的步骤,

 自动加载jar包中META-INF/services/java.sql.Driver文件中的驱动类。

2.获取数据库连接

使用的是DriverManager的getConnection方法,方法有三个参数:String url, String user, String password,分别是数据库连接路径、用户名及密码。

    @CallerSensitivepublic static Connection getConnection(String url,String user, String password) throws SQLException {java.util.Properties info = new java.util.Properties();if (user != null) {info.put("user", user);}if (password != null) {info.put("password", password);}return (getConnection(url, info, Reflection.getCallerClass()));}

连接路径url,通常我们这样写:

jdbc:mysql://ip地址(或域名):端口号/数据库名称?参数键值对1&参数键值对2

  • 对于本地mysql服务器,且默认端口3306,可以简写:jdbc:mysql:///数据库名称?参数键值对 
  • 添加参数键值对:useSSL=false,禁用安全连接方式,可以解决警告提示。对于多个键值对使用&连接。

二、Connection 数据库连接对象

作用是获取执行 SQL 的对象、管理事务。

1.获取执行对象

普通执行SQL对象—Statement

//4. 获取执行sql的对象 Statement
Statement stmt = conn.createStatement();

还有不是普通的:

预编译SQL的执行SQL对象

Creates a CallableStatement object for calling database stored procedures.The CallableStatement object provides methods for setting up its IN and OUT parameters, and methods for executing the call to a stored procedure.

创建用于调用数据库存储过程的CallableStatement对象。CallableStatement对象提供了设置其IN和OUT参数的方法,以及执行对存储过程的调用的方法。

注意:此方法针对处理存储过程调用语句进行了优化。当prepareCall方法完成时,某些驱动程序可能会将call语句发送到数据库;其他的可以等到CallableStatement对象执行完。这对用户没有直接影响;但是,它确实会影响哪个方法抛出某些SQL Exceptions。

执行存储过程的

Converts the given SQL statement into the system's native SQL grammar. A driver may convert the JDBC SQL grammar into its system's native SQL grammar prior to sending it. This method returns the native form of the statement that the driver would have sent.

将给定的SQL语句转换成系统的本机SQL语法。驱动程序可以在发送之前将JDBC SQL语法转换成其系统的本地SQL语法。

p:存储过程在MySQL中不常用。

2.事务管理

MySQL有以下事务管理的操作:

开启事务 : BEGIN;   START TRANSACTION;

提交事务 : COMMIT;

回滚事务 : ROLLBACK;

JDBC在Connection接口中定义了3个对应的事务管理方法:

void setAutoCommit(boolean autoCommit) throws SQLException;
//开启事务需要将该参数设为为false
void commit() throws SQLException;
void rollback() throws SQLException;

执行一个简单事务例子:

//定义了两个要执行的sql
String sql = "update account set money = 2000 where id = 2";
String sql2 = "update account set money = 2000 where id = 1";// 开启事务 【连接conn、执行sql的对象 Statement stmt】
try {conn.setAutoCommit(false);int count = stmt.executeUpdate(sql);//受影响的行数System.out.println(count);int count2 = stmt.executeUpdate(sql2);//受影响的行数System.out.println(count2);
}catch (Exception throwables){conn.rollback();
}

三、Statement

作用就是执行SQL语句。

1.执行DDL、DML语句

例如上一个例子中的 int count = stmt.executeUpdate(sql);   ,executeUpdate就是用于执行DDL和DML的。

2.执行DQL语句

对于一个DQL查询语句使用是executeQuery

String sql = "select * from account";

ResultSet rs=stmt.executeQuery(sql);

这个方法使用到了 ResultSet结果集 对象,封装了SQL查询语句的结果。

四、ResultSet

上一节提到ResultSet,封装了SQL查询语句的结果。我们打开ResultSet接口,其中定义了next和一些getXxx方法来操作查询结果:

boolean next() throws SQLException;String getString(int columnIndex) throws SQLException;
boolean getBoolean(int columnIndex) throws SQLException;
byte getByte(int columnIndex) throws SQLException;
int getInt(int columnIndex) throws SQLException;
double getDouble(int columnIndex) throws SQLException;
......
String getString(String columnLabel) throws SQLException;
......
  • next();

将光标从当前位置向前移动一行,判断当前行是否为有效行。(就是找数据库表下一行)

方法返回值:

true :当前行有数据

false :当前行没有数据

  • getXxx(参数);

获取数据。

参数有两种类型:

int类型的参数:列的编号,从1开始

String类型的参数: 列的名称

  • 例,定义查询sql并显示查询内容;

String sql = "select * from account";

 

  • close  最后也是需要释放资源。

void close() throws SQLException;

rs.close();


☕物有本末,事有终始,知所先后。🍭

相关文章:

JDBC的API详解

🍎道阻且长,行则将至。🍓 目录 一、DriverManager 驱动管理类 1.注册驱动 2.获取数据库连接 二、Connection 数据库连接对象 1.获取执行对象 2.事务管理 三、Statement 1.执行DDL、DML语句 2.执行DQL语句 四、ResultSet 以JDBC快速…...

【深度强化学习】(4) Actor-Critic 模型解析,附Pytorch完整代码

大家好,今天和各位分享一下深度强化学习中的 Actor-Critic 演员评论家算法,Actor-Critic 算法是一种综合了策略迭代和价值迭代的集成算法。我将使用该模型结合 OpenAI 中的 Gym 环境完成一个小游戏,完整代码可以从我的 GitHub 中获得&#xf…...

SQL注入——文件上传

目录 一,mysql文件上传要点 二,文件上传指令 一句话木马 三,实例 1,判断注入方式 2,测试目标网站的闭合方式: 3,写入一句话木马 4,拿到控制权 一,mysql文件上传…...

【ESP32+freeRTOS学习笔记之“ESP32环境下使用freeRTOS的特性分析(新的开篇)”】

目录【ESP32freeRTOS学习笔记】系列新的开篇ESP-IDF对FreeRTOS的适配ESP-IDF环境中使用FreeRTOS的差异性简介关于FreeRTOS的配置关于ESP-IDF FreeRTOS Applications结语【ESP32freeRTOS学习笔记】系列新的开篇 ESP-IDF对FreeRTOS的适配 FreeRTOS是一个可以适用于多个不同MCU开…...

Uipath Excel 自动化系列18-RefreshPivotTable(刷新透视表)

活动描述 RefreshPivotTable(刷新透视表):如果透视表的数据源发生变化,需使用刷新透视表活动,该活动需与Use Excel File 活动选择的 Excel 文件一起使用。 使用如下图: RefreshPivotTable(刷新透视表)属性 属性 作用 Display…...

设计模式之不变模式

在并行软件开发过程中,同步操作是必不可少的。当多线程对同一个对象进行读写操作时,为了保证对象数据的一致性和正确性,有必要对对象进行同步操作,但同步操作对系统性能有损耗。不变模式可以去除这些同步操作,提高并行…...

C++11 map

C11中Map的使用Map是c的一个标准容器&#xff0c;她提供了很好一对一的关系&#xff0c;在一些程序中建立一个map可以起到事半功倍的效果&#xff0c;总结了一些map基本简单实用的操作&#xff01;1. map最基本的构造函数&#xff1b;map<string , int >mapstring; map&l…...

docker基本命令 - 数据卷

作用 ● 做数据持久化。防止容器一旦停止运行&#xff0c;该容器中运行产生的数据就没了 ● 不同容器之间的数据共享(大鲸鱼背上各个小集装箱之间可以共享数据) 交互式命令使用 docker run -it -v / 宿主机的绝对路径目录:/容器内绝对路径目录 镜像名 docker run -it -v / 宿…...

SQL查漏补缺

有这么一道题&#xff0c;先看题目&#xff0c;表的内容如下 显示GDP比非洲任何国家都要高的国家名称(一些国家的GDP值可能为NULL)。 错误的查询&#xff1a; SELECT name FROM bbcWHERE gdp > ALL (SELECT gdp FROM bbc WHERE region Africa)正确的查询&#xff1a; SE…...

偏向锁撤销

偏向状态 一个对象创建时&#xff1a; 如果开启了偏向锁&#xff08;默认开启&#xff09;&#xff0c;那么对象创建后&#xff0c;markword 值为 0x05 即最后 3 位为 101&#xff0c;这时它的thread、epoch、age 都为 0。偏向锁是默认是延迟的&#xff0c;不会在程序启动时立…...

Qt版海康MV多相机的采集显示程序

创建对话框工程MultiCamera工程文件MultiCamera.pro#------------------------------------------------- # # Project created by QtCreator 2023-03-11T16:52:53 # #-------------------------------------------------QT core guigreaterThan(QT_MAJOR_VERSION, 4): …...

2023年江苏省职业院校技能大赛中职网络安全赛项试卷-教师组任务书

2023年江苏省职业院校技能大赛中职网络安全赛项试卷-教师组任务书 一、竞赛时间 9:00-12:00&#xff0c;12:00-15:00&#xff0c;15:00-17:00共计8小时。 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 基础设施设置与安全加固、网络安全事件响应、数…...

零基础小白如何自学网络安全成为顶尖黑客?

在成为黑客之前&#xff0c;你需要做两点准备&#xff1a; 1、学一门编程语言。学哪一门不重要&#xff0c;但你要参考一下下面的条例&#xff1a; C语言是Unix系统的基础。它&#xff08;连同汇编语言&#xff09;能让你学习对黑客非常重要的知识&#xff1a;内存的工作原理…...

外贸建站如何提高搜索引擎排名,吸引更多潜在客户?

在如今全球贸易日益繁荣的背景下&#xff0c;越来越多的企业开始重视外贸建站&#xff0c;并寻求提高搜索引擎排名以吸引更多潜在客户。 那么&#xff0c;如何才能有效地提高外贸网站的搜索引擎排名呢&#xff1f;本文将为您详细介绍几个有效的方法。 一、关键词优化 关键词…...

计算机网络考研-第一章学

计算机网学习总结第一章计算机系统概述1.1.1 导学1.1.2 操作系统的特征1.2 操作系统的发展与分类1.3 操作系统的运行环境1.3.1 操作系统的运行机制1.3.2 中断和异常1.3.3系统调用&#xff1a;1.3.4 操作系统的体系结构第一章总结第一章计算机系统概述 1.1.1 导学 1.1.2 操作系…...

【分布式版本控制系统Git】| Git概述、Git安装、Git常用命令

目录 一&#xff1a;概述 1.1. 何为版本控制 1.2. 为什么需要版本控制 1.3. 版本控制工具 1.4. Git 简史 1.5. Git 工作机制 1.6. Git和代码托管中心 二&#xff1a;安装 2.1. Git安装 三&#xff1a;常用命令 3.1 设置用户签名 3.2 初始化本地库 3.3 查看本地库…...

【人脸识别】ssd + opencv Eigenfaces 和 LBPH算法进行人脸监测和识别

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言ssd opencv Eigenfaces 和 LBPH算法进行人脸监测和识别1. ssd 目标监测2.opencv的三种人脸识别方法2.1 Eigenfaces2.2 LBPH前言 ssd opencv Eigenfaces 和 LB…...

PMP项目管理项目成本管理

目录1 项目成本管理概述2 规划成本管理3 估算成本4 制定预算5 控制成本1 项目成本管理概述 项目成本管理包括为使项目在批准的预算内完成而对成本进行规划、估算、预测、融资、筹资、管理和控制的各个过程&#xff0c;从而确保项目在批准的预算内完工。核心概念 项目成本管理旨…...

Vue3视频播放器组件Vue3-video-play入门教程

Vue3-video-play适用于 Vue3 的 hls.js 播放器组件 | 并且支持MP4/WebM/Ogg格式。 1、支持快捷键操作 2、支持倍速播放设置 3、支持镜像画面设置 4、支持关灯模式设置 5、支持画中画模式播放 6、支持全屏/网页全屏播放 7、支持从固定时间开始播放 8、支持移动端&#xff0c;移动…...

操作系统经典问题——消费者生产者问题

今日在学习操作系统的过程中遇到了这个问题&#xff0c;实在是很苦恼一时间对于这种问题以及老师上课根据这个问题衍生的问题实在是一头雾水。在网络上寻找了一些大佬的讲解之后算是暂时有了点茅塞顿开的感觉。 首先第一点什么是生产者——消费者问题&#xff1a; 系统中有一…...

网络安全工程师在面试安全岗位时,哪些内容是加分项?

金三银四已经来了&#xff0c;很多小伙伴都在困惑&#xff0c;面试网络安全工程师的时候&#xff0c;有哪些技能是加分项呢&#xff1f;接下来&#xff0c;我简单说说&#xff01; 去年我在微博上贴了一些在面试安全工作时会加分的内容&#xff0c;如下&#xff1a; 1. wooyu…...

前端整理 —— vue

1. vue的生命周期 经典爱问&#xff0c;感觉内容挺多的 介绍一下有哪几个 vue2中的生命周期有11个&#xff0c;分别为beforeCreate&#xff0c;created&#xff0c;beforeMount&#xff0c;mounted&#xff0c;beforeUpdate&#xff0c;updated&#xff0c;beforeDestroy&…...

HTML快速入门

目录HTML概念HTML基本格式基本语法常用标签1.文件标签&#xff1a;构成html最基本的标签2.文本标签&#xff1a;和文本有关的标签3.列表标签4.图片标签5.超链接标签6.表格标签7.表单标签HTML概念 HTML是最基础的网页开发语言&#xff0c;Hyper Text Markup Language&#xff0…...

哈希冲突

为什么会有哈希冲突&#xff1f;哈希表通过哈希函数来计算存放数据&#xff0c;在curd数据时不用多次比较&#xff0c;时间复杂度O&#xff08;1&#xff09;。但是凡事都有利弊&#xff0c;不同关键字通过相同哈希函数可能计算出来相同的存放地址&#xff0c;这种现象被称为哈…...

git添加子模块(submodule)

git添加子模块(submodule) 背景 有时候自己的项目需要用到别人的开源代码&#xff0c;例如 freertos 和 tinyusb 这个时候有两种选择 将开源的代码下载下来放到自己的 git 中管理 缺点&#xff1a;如果远端仓库更新&#xff0c;自己仓库的代码不会更新 将开源代码通过子模块…...

C++ 11 pair

class pair 可将两个 value视为一个单元。C标准库内多处用到了这个 class 。尤其是容器 map、multimap、unordered_map和 unordered_multimap就是使用 pair 来管理其以 key/value pair形式存在的元素。任何函数如果需要返回两个 value&#xff0c;也需要用到 pair&#xff0c;例…...

反向传播与随机梯度下降

反向传播实际上就是在算各个阶段梯度&#xff0c;每层的传入实际是之前各层根据链式法则梯度相乘的结果。反向传播最初传入的Δout是1&#xff0c;Δ通常表示很少量的意思&#xff0c;Δout1的时候这样在反向传播的时候算出来的dw和dx刚好就是当前梯度。深度神经网络中每层都会…...

一个conda引起的CPU异常

03/11/2023 登陆访问用户CPU异常 错误描述 早上向往常一样打开机器&#xff0c;突然感觉CPU有点"乱飙"&#xff0c;因为是个人机器&#xff0c;没有别人使用&#xff0c;所以感觉有点问题。 排错流程 首先查看各个进程的资源占用情况 top # 按住P&#xff0c;以CPU的…...

java Date 和 Calendar类 万字详解(通俗易懂)

Date类介绍及使用关于SimpleDateFormat类Calendar类介绍及使用LocalDateTime类介绍及使用关于DateTimeFormatter类一、前言本节内容是我们《API-常用类》专题的第五小节了。本节内容主要讲Date 类 和 Calendar 类&#xff0c;内容包括但不限于Date类简介&#xff0c;Date类使用…...

扩展欧几里得算法及其应用

前言 由于数论的板子真的很抽象&#xff0c;也很难背&#xff0c;所以特此记录扩展欧几里得算法的板子和它的用途 本篇文章只涉及应用&#xff0c;不涉及证明&#xff0c;如需理解证明还请各位移步其他优秀的讲解&#xff01; 扩展欧几里得算法 先粘一下板子的代码 typedef lo…...