JDBC的学习记录

news2024/11/17 14:25:59

JDBC就是使用java语言操作关系型数据库的一套API。

JDBC(Java Database Connectivity)是Java语言中用于连接和操作数据库的一种标准接口。它提供了一组方法和类,使Java程序能够与各种不同类型的关系型数据库进行交互。

JDBC的主要功能包括建立数据库连接、执行SQL语句、处理查询结果、事务处理等。通过JDBC,开发人员可以使用Java程序来访问和操作数据库,而不需要直接编写特定数据库的特定代码。

JDBC的设计目标是提供一种独立于数据库的数据库访问接口,使得开发人员可以在不同的数据库系统之间切换而不需要改变程序代码。JDBC通过使用驱动程序来实现这一目标,每个数据库都需要提供一个对应的JDBC驱动程序。

使用JDBC可以实现各种数据库操作,如创建数据库、创建表、插入数据、更新数据、删除数据等。同时,JDBC还支持事务处理和批量更新等高级操作。

JDBC是Java平台的一部分,可以在Java开发环境中直接使用。目前,大多数数据库都提供了对应的JDBC驱动程序,可以很方便地与Java程序进行集成。

下面我们来一起学习以下吧!

---------------------------------------------------------------------------------------------------------------------------

为了方便大家一起动手,我把建表的代码给放进来了

CREATE table account(
id int,
name varchar(20),
money INT
);

还有表中的数据

insert into account(id,name,money) VALUES(1,'张三',1000);
insert into account(id,name,money) VALUES(2,'李四',1000); 

 建好之后就是这样啦

数据库建好了之后我们就要尝试再java中写sql语句

大体就是这样

1、首先我们得创建工程,导入驱动jar包

 

jar包导入之后,我们右键点击jar包,选择add as library

然后这个可以看情况而定了

2、注册驱动

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

3、获取链接

Connection conn = DriverManager.getConnection(url, username, password);

4、定义sql语句

String sql="updata..."; 

5、获取执行sql对象

 Statement stmt=conn.createStatement();

6、执行sql

 stmt.executeUpdate(sql);

7、处理返回结果

8、释放资源

结果如下

 

但是会有红字,idea建议我们使用比较安全的链接方式SSL,配置完会是我们的性能降低一点,所以不使用,我们可以在后面加上    ?useSSL=false

这样就没有红字了 

 

JDBC API 详解

DriverManager

DriverManager(驱动管理类)作用

1、注册驱动

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

Mysql 5之后的驱动包,可以省略注册驱动的步骤

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

2、获取数据库连接

Connection conn = DriverManager.getConnection(url, username, password);

conn我们可以自己随便取

url:连接路径

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

示例  jdbc:mysql://127.0.0.1:3307/db3

  • 如果连接的是本机mysql服务器的话,并且mysql服务器默认端口为3306,则url可以简写为

jdbc:mysql:///数据库名?参数键值对

  • 配置useSSL=false参数,禁用安全连接方式,解决警告提示

username:用户名

password:密码

Connection

1、获取执行sql的对象

  • 普通执行sql对象

Statement createStatement()

  • 预编译sql的执行sql对象:防止sql注入

PreparedStatement prepareStatement(sql) 

  •  执行存储过程中的对象

CallableStatement prepareCall(sql) 

 2、事务管理

  • mydql事务管理

开启事务:BEGIN;/START TRANSACTION

提交事务:COMMIT;

回滚事务:ROLLBACK;

Mysql默认自动提交事务 

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

开启事务:setAutoCommit(Boolean autoCommit):true为自动提交事务;false为手动提交事务,即为开启事务

提交事务:commit()

回滚事务:rollback() 

try {
    //开启事务
    conn.setAutoCommit(false);
    //执行sql
    int count1 = stmt.executeUpdate(sql1);
    //处理结果
    System.out.println(count1);
    //执行sql
    int count2 = stmt.executeUpdate(sql2);
    //处理结果
    System.out.println(count2);
    //提交事务
    conn.commit();
} catch (Exception e) {
    //回滚事务
    conn.rollback();
    throw new RuntimeException(e);
}

 

Statement

  • Statement作用:执行sql语句
  • 执行sql语句

int executeUpdate(sql):执行DML、DDL语句

返回值:(1)DML语句影响的行数(2)DDL语句执行后、执行成功也可能返回0 

ResultSet executeQuery(sql):执行DQL语句

返回值:ResultSet结果集对象 

 

执行DML语句

 表中有id=1的受影响行数为1

 

表中没有id=5的数据,受影响行数为0 

 

还可以优化以下,用户想看到的是修改成功了还是失败了

id=5时是下面的结果

执行DDL语句

 

db2创建成功了

再看一下删除

返回的居然是0,但是我们删除成功了,所以这里没有使用if语句去判断成功与否

未完待续。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1506408.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【notepad++工具使用之】批量加逗号

背景 在使用sql语句in关键字查询时,我们需要把数据用逗号进行隔开,在数据量非常少的时候(十几二十个这样),可以手动的去加逗号分隔符; 但是遇到1000个怎么弄呢? 强大的Notepad 批量处理数据时…

讲解Python3内置模块之json编码解码方法

简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成&#…

学习笔记docker——容器通过网络通信

inspect-a:查看Linux中的网络细节。 docker inspect 容器id/容器名:查看容器的细节。 注意:上面有误,应该是接在docker0网桥上的容器只能通过容器的ip(eth0)之间进行通信,不能通过容器名称通信,要用容器名…

git搜索历史上曾经的文本内容

文章目录 问题在命令行搜索历史内容参考 问题 我们知道,github有文本搜索功能: 比如想搜哪些文件内容包括 aaa ,在搜索框中输入 aaa : 但是,如果是历史上曾经有过的文本,这个办法貌似不行。 比如文件 tes…

Babel:现代JavaScript的桥梁

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

实时工业控制系统的创新整合:PLC4X与CnosDB的高效数据采集与存储

在当代工业自动化系统中,实时监测和数据分析变得至关重要。本文将介绍如何通过集成Apache PLC4X与CnosDB,实现对工业控制系统中的PLC设备进行高效数据采集和存储,为工程师们提供更强大的数据分析和监测工具。 PLC的定义 PLC是可编程逻辑控制…

C++_lambda表达式

目录 前言-lambda表达式的介绍: 1、lambda表达式的作用 2、lambda表达式的优势 2.1 用lambda构建lambda变量 3、lambda表达式的类型 4、捕捉列表说明 4.1 传值捕捉 4.2 mutable 4.3 传引用捕捉 4.4 混合捕捉 5、lambda的大小 结语 前言-lambda表达…

基于springboot+vue实现早餐店点餐系统项目【项目源码+论文说明】计算机毕业设计

基于springbootvue实现早餐店点餐系统演示 摘要 多姿多彩的世界带来了美好的生活,行业的发展也是形形色色的离不开技术的发展。作为时代进步的发展方面,信息技术至始至终都是成就行业发展的重要秘密。不论何种行业,大到国家、企业&#xff0…

基于51单片机的直流电机调速系统设计

基于51单片机的直流电机调速系统设计[proteus仿真] 电机调速系统这个题目算是课程设计和毕业设计中常见的题目了,本期是一个基于51单片机的直流电机调速系统设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章 2&#xff…

【Web】浅聊Java反序列化之Rome——EqualsBeanObjectBean

目录 简介 原理分析 ToStringBean EqualsBean ObjectBean EXP ①EqualsBean直球纯享版 ②EqualsBean配合ObjectBean优化版 ③纯ObjectBean实现版 关于《浅聊Java反序列化》系列,纯是记录自己的学习历程,宥于本人水平有限,内容很水&a…

AI相关的实用工具分享

AI实用工具大赏:赋能科研与生活,探索AI的无限可能 前言 在数字化浪潮汹涌而至的今天,人工智能(AI)已经渗透到我们生活的方方面面,无论是工作还是生活,都在悄然发生改变。AI的崛起不仅为我们带…

搭建Android Studio开发环境

一、JDK 1、下载 2、安装 双击进行安装,修改安装路径为:D:\Java\jdk-17.0.4.1即可,安装完成后目录如下: 配置环境变量 3、测试 WinR,输入cmd,按Enter后,键入:java --version&…

云上攻防-云产品篇堡垒机场景JumpServer绿盟SASTeleport麒麟齐治

知识点 1、云产品-堡垒机-产品介绍&攻击事件 2、云产品-堡垒机-安全漏洞&影响产品 章节点: 云场景攻防:公有云,私有云,混合云,虚拟化集群,云桌面等 云厂商攻防:阿里云,腾讯…

力扣难题:重排链表

首先通过快慢指针找到中间节点,然后将中间节点之后和之前的部分分为两个链表,然后翻转后面的链表,注意方法,然后将两个链表交替链接。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode…

【数理统计实验(三)】假设检验的R实现

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972 个人介绍: 研一|统计学|干货分享          擅长Python、Matlab、R等主流编程软件          累计十余项国家级比赛奖项,参与研究经费10w、40w级横向 文…

uglityjs非集成方式混淆js代码

文章目录 uglityjs非集成方式混淆js代码一、前言1.简介2.环境3.bat和ps1.ps1 文件.bat 文件 二、正文1.安装Node.js2.安装UglityJS3.代码混淆1)单个文件2)多个文件 uglityjs非集成方式混淆js代码 一、前言 1.简介 UglifyJS 是一个 JavaScript 解析器、…

3.10复试专业课日报【周末总结】

数据结构 考点一,考点二 操作系统 计算机网络 组成原理 1.什么是中断向量 2. 数据库 选择题80-100 1.数据库的逻辑模型(数据模型) 2.DCL,DML,DQL,DDL 3.数据库特点 算法 1.复习 对称二叉树,二叉树最大深度 2.只出现一…

计算机考研|保姆级择校+资料+全年规划

本科211,研究生上岸某985 计算机考研备考过程中走了不少弯路,希望我的经验能够帮助大家少走弯路 大家决定考研之前,一定要认真思考自己考研的目的是什么,有的人是随大流,别人考研,就跟风考研,有…

vulhub中Weblogic WLS Core Components 反序列化命令执行漏洞复现(CVE-2018-2628)

Oracle 2018年4月补丁中,修复了Weblogic Server WLS Core Components中出现的一个反序列化漏洞(CVE-2018-2628),该漏洞通过t3协议触发,可导致未授权的用户在远程服务器执行任意命令。 访问http://your-ip:7001/consol…

初识REDHAWK

文章目录 前言一、什么是 REDHAWK?1、概述2、REDHAWK 的应用 二、REDHAWK 的流程管理和交互方法1、流程管理2、数据传输 三、入门1、安装 REDHAWK2、IDE 快速入门①、启动 REDHAWK IDE②、打开 Chalkboard③、创建信号发生器④、测试组件的输入/输出响应 前言 REDHAWK 是一个…