【MySQL】Java实现JDBC编程
文章目录
- 1. JDBC
- 2. 添加驱动包
- 3. 编程
- 3.1 创建数据源
- 3.2 与数据库建立连接
- 3.3 构造SQL语句
- 3.4 执行SQL语句
- 3.5 释放资源,关闭连接
1. JDBC
数据库编程必须掌握至少一门编程语言,一种数据库,会导入数据库驱动包。
操作和连接不同数据库都需要一种连接的软件组件,即数据库驱动包。数据库驱动包中包含了与特定数据库相对应的API,使得应用程序可以与数据库进行通信。而不同的数据库提供的API都不相同,从而造成很麻烦,这个时候JDBC就应运而生了,让Java连接数据库变得简单。
JDBC ,即Java Database Connectivity,Java数据库连接。它是一个标准的Java API,用于将Java程序与数据库连接。JDBC提供了一组用于编写可以访问关系型数据库(如MySQL、Oracle和Microsoft SQL Server)的应用程序的接口和类。
我这里使用的Java连接操作MySQL。
2. 添加驱动包
我们可以在中央仓库中找到我们所需驱动包API。(当然也可以在Oracle,GitHub中下载)
Maven存储库
- 在搜索栏直接搜索MySQL
- 找到我们需要的MySQL,Java
- 点开,选择我们需要的版本(我这里选择5.1.49)
- 下载完成,一个 .jar压缩文件
- 将. jar文件导入项目中,创建一个目录,直接复制就行
- 右键这个包,点击Add as Library…,使idea知道导入了这个
点击ok,就完成了添加驱动包。
3. 编程
编程看着麻烦,其实就是固定模板,多使用几次便会掌握了。
3.1 创建数据源
//创建“数据源”//向上转型,DataSource是JDBC提供的interface,MysqlDataSource是MySQL驱动包提供的interfaceDataSource dataSource = new MysqlDataSource();//setUrl,setUser,setPassword三个方法都是子类的方法,我们可以强转一下,也可以直接使用,但当代码十分复杂的时候,有可能造成代码耦合。//方法里面的东西格式是固定的,IP是你电脑的IP,xiaoc是你要关联的数据库名字,替换成你要操作的数据库名字。((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/xiaoc?characterEncoding=utf8&useSSI=false");//这一步是提供用户名,一般都是root((MysqlDataSource) dataSource).setUser("root");//提供你的密码((MysqlDataSource) dataSource).setPassword("131452");
3.2 与数据库建立连接
//和数据库建立连接//一个Java程序,用于来连接数据库服务器Connection connection = dataSource.getConnection(
注意:
选择Connection时,一定要选择java.sql,上面那个时不可以的
3.3 构造SQL语句
// 构造 SQL 语句//本身SQL语句时String类型,但JDBC提供了Statement对象,让我们转换一下再发送。Statement直接发送语句不做任何检查,我们也可以使用PreparedStatement在客服端进行初步的检查,降低服务器的负担。String sql = "insert into student values(111,小辰)";PreparedStatement statement = connection.prepareStatement(sql);
3.4 执行SQL语句
// 执行 SQL 语句---返回值影响几行int n = statement.executeUpdate();System.out.println("n = " + n);
executeQuery,executeUpdate都是Statement中的方法,前者用于查询,后者用于增加,删除
,修改,返回类型是一个整型。
3.5 释放资源,关闭连接
//释放资源,关闭连接//Java虽然有垃圾回收机制,释放内存,但计算机资源不止内存,所以我们还需要手动释放,这个时候我们需注意释放顺序,倒着来,先创建的后关闭。statement.close();connection.close();
这是插入的程序,其他的操作和这区别不大,大家可以自己探索。
相关文章:
【MySQL】Java实现JDBC编程
文章目录 1. JDBC2. 添加驱动包3. 编程3.1 创建数据源3.2 与数据库建立连接3.3 构造SQL语句3.4 执行SQL语句3.5 释放资源,关闭连接 1. JDBC 数据库编程必须掌握至少一门编程语言,一种数据库,会导入数据库驱动包。 操作和连接不同数据库都需要…...
纽扣电池寿命和功率增强器
近日,基础半导体器件领域的高产能生产专家Nexperia(安世半导体)宣布推出NBM7100和NBM5100。这两款IC采用了具有突破意义的创新技术,是专为延长不可充电的典型纽扣锂电池寿命而设计的新型电池寿命增强器,相比于同类解决…...
bilibili倍数脚本,油猴脚本
一. 内容简介 bilibili倍数脚本,油猴脚本 二. 软件环境 2.1 Tampermonkey 三.主要流程 3.1 创建javascript脚本 点击添加新脚本 就是在 (function() {use strict;// 在这编写自己的脚本 })();倍数脚本,含解析 // UserScript // name bi…...
8.14 作业
1. .text .globl _start_start:mov r0,#0x9mov r1,#0xfbl loop loop:cmp r0,r1beq stopsubhi r0,r1subls r1,r0mov pc,lr stop:b stop 2.实现1-100的和 .text .globl _start_start:mov r0,#0x1bl loop loop:cmp r0,#0x64bhi stopaddls r1,r0addls r0,#0x1mov pc,lr stop:b sto…...
Debian安装和使用Elasticsearch 8.9
命令行通过 .deb 包安装 Elasticsearch 创建一个新用户 adduser elastic --> rust # 添加sudo权限 # https://phoenixnap.com/kb/how-to-create-sudo-user-on-ubuntu usermod -aG sudo elastic groups elastic下载Elasticsearch v8.9.0 Debian 包 https://www.elastic.co/…...
三 、CTR预估数据准备
三 CTR预估数据准备 3.1 分析并预处理raw_sample数据集 # 从HDFS中加载样本数据信息 df spark.read.csv("hdfs://localhost:9000/datasets/raw_sample.csv", headerTrue) df.show() # 展示数据,默认前20条 df.printSchema()显示结果: ------------…...
netty学习分享 二
操作系统IO模型与实现原理 阻塞IO 模型 应用程序调用一个IO函数,导致应用程序阻塞,等待数据准备好。如果数据没有准备好,一直等待….数据准备好了,从内核拷贝到用户空间,IO函数返回成功指示。 当调用recv()函数时,系…...
聊聊web服务器NGINX
文章目录 聊聊web服务器NGINXNGINX的起源NGINX早期阶段首次发布快速扩展模块化架构逐步增加功能商业收购 NGINX能做什么NGINX的优势NGINX为何能兴起 聊聊web服务器NGINX NGINX的起源 NGINX是一个 HTTP 和反向代理服务器,一个邮件代理服务器,以及一个通…...
【hello C++】特殊类设计
目录 一、设计一个类,不能被拷贝 二、设计一个类,只能在堆上创建对象 三、设计一个类,只能在栈上创建对象 四、请设计一个类,不能被继承 五、请设计一个类,只能创建一个对象(单例模式) C🌷 一、设计一个类&…...
js实现按创建时间戳1609459200000 开始往后开始显示运行时长-demo
运行时长 00日 00时 17分 59秒 代码 function calculateRuntime(timestamp) {const startTime Date.now(); // 获取当前时间戳//const runtimeElement document.getElementById(runtime); // 获取显示运行时长的元素function updateRuntime() {const currentTimestamp Date…...
latex三线表按页面大小填充
latex三线表按页面大小填充 使用Latex表格时会出现下图情况,表格没有填充整个页面,导致不美观。 解决方法: 在\begin{tabular}前加上\resizebox{\linewidth}{!}{ , 在\end{tabular} 后加 ‘}’ 如下:\resizebox{…...
佛祖保佑,永不宕机,永无bug
当我们的程序编译通过,能预防的bug也都预防了,其它的就只能交给天意了。当然请求佛祖的保佑也是必不可少的。 下面是一些常用的保佑图: 佛祖保佑图 ——————————————————————————————————————————…...
redis分布式集群-redis+keepalived+ haproxy
redis分布式集群架构(RedisKeepalivedHaproxy)至少需要3台服务器、6个节点,一台服务器2个节点。 redis分布式集群架构中的每台服务器都使用六个端口来实现多路复用,最终实现主从热备、负载均衡、秒级切换的目标。 redis分布式集…...
快递管理系统springboot 寄件物流仓库java jsp源代码mysql
本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 快递管理系统springboot 系统有1权限:管…...
自学黑客/网络安全(学习路线+教程视频+工具包+经验分享)
一、为什么选择网络安全? 这几年随着我国《国家网络空间安全战略》《网络安全法》《网络安全等级保护2.0》等一系列政策/法规/标准的持续落地,网络安全行业地位、薪资随之水涨船高。 未来3-5年,是安全行业的黄金发展期,提前踏入…...
如何进行游戏平台搭建?
游戏平台搭建涉及多个步骤和技术,下面是一个大致的指南: 市场调研和定位:首先,要了解游戏市场和受众的需求,选择适合的游戏类型和定位。 选择平台类型:决定是要搭建网页平台、移动应用平台还是其他类型的…...
安全防御问题
SSL VPN的实现,防火墙需要放行哪些流量? 实现 SSL VPN 时,在防火墙上需要放行以下流量, SSL/TLS 流量:SSL VPN 通过加密通信来确保安全性,因此防火墙需要允许 SSL/TLS 流量通过。一般情况下,SSL…...
x-www-form-urlencoded、application/json到底是什么
在http协议中规定了GET、HEAD、POST、PUT、DELETE、CONNECT 等请求方式,其中比较常用的就是post和get,其中post用来向服务器提交数据,post只规定了提交的数据必须放在请求的主体中,但是并没有规定传输数据的编码方式。比较主流的有如下的几种…...
LeetCode 33题:搜索旋转排序数组
目录 题目 思路 代码 暴力解法 分方向法 二分法 题目 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 …...
用python来爬取某鱼的商品信息(1/2)
目录 前言 第一大难题——找到网站入口 曲线救国 模拟搜索 第二大难题——登录 提一嘴 登录cookie获取 第一种 第二种 第四大难题——无法使用导出的cookie 原因 解决办法 最后 出现小问题 总结 下一篇博客(大部分代码实现) 前言 本章讲理…...
SDD基于规范编程-OpenSpec及SuperPowers档
智能体时代的代码范式转移与 C# 的战略转型 传统的 C# 开发模式,即所谓的“工程导向型”开发,要求开发者创建一个复杂的项目结构,包括项目文件(.csproj)、解决方案文件(.sln)、属性设置以及依赖…...
终极指南:如何在Chrome浏览器中免费实现KeePass密码自动填充
终极指南:如何在Chrome浏览器中免费实现KeePass密码自动填充 【免费下载链接】ChromeKeePass Chrome extensions for automatically filling credentials from KeePass/KeeWeb 项目地址: https://gitcode.com/gh_mirrors/ch/ChromeKeePass 你是否厌倦了每次登…...
如何让AI替你操作浏览器?Midscene Chrome扩展的智能自动化革命
如何让AI替你操作浏览器?Midscene Chrome扩展的智能自动化革命 【免费下载链接】midscene AI-powered, vision-driven UI automation for every platform. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 你是否厌倦了每天重复点击、填写、提交…...
从Ping命令到网卡:用Wireshark抓包深度解析LwIP 2.1.0的数据发送链路
从Ping命令到网卡:用Wireshark抓包深度解析LwIP 2.1.0的数据发送链路 当你在嵌入式设备上执行ping 192.168.1.1时,ICMP报文究竟经历了怎样的奇幻旅程?本文将带你用Wireshark抓包工具逆向拆解LwIP协议栈的数据发送链路,通过可视化抓…...
告别K-Means!用DBSCAN在MATLAB里搞定任意形状的数据聚类(附完整代码)
突破传统聚类局限:DBSCAN在MATLAB中的实战应用指南 当面对复杂数据集时,许多数据分析师的第一反应是使用K-Means这类经典算法。但你是否遇到过这样的困境:明明数据呈现明显的聚集特征,K-Means给出的结果却支离破碎?或者…...
Phi-4-mini-reasoning与YOLOv5协同实战:图像描述生成与逻辑推理
Phi-4-mini-reasoning与YOLOv5协同实战:图像描述生成与逻辑推理 1. 效果亮点预览 当视觉识别遇上逻辑推理,会碰撞出怎样的火花?我们最近尝试了一个有趣的实验:用YOLOv5识别图片中的物体,再将识别结果输入Phi-4-mini-…...
ThinkPHP 8+redis的生命周期的庖丁解牛
它的本质是:PHP 进程(客户端)通过 TCP 套接字与 Redis 守护进程(服务端)建立连接,发送基于 RESP 协议的指令,接收二进制响应,并将结果映射回 PHP 变量的全过程。在 TP8 中࿰…...
基于File-Based App开发MVP项目仿
Issue 概述 先来看看提交这个 Issue 的作者是为什么想到这个点子的,以及他初步的核心设计概念。?? 本 PR 实现了 Apache Gravitino 与 SeaTunnel 的集成,将其作为非关系型连接器的外部元数据服务。通过 Gravitino 的 REST API 自动获取表结构和元数据&…...
OFA-VE开源可部署实践:自主搭建视觉蕴含SaaS服务的架构与成本分析
OFA-VE开源可部署实践:自主搭建视觉蕴含SaaS服务的架构与成本分析 1. 项目概述:什么是视觉蕴含分析 视觉蕴含(Visual Entailment)是一项前沿的多模态AI技术,它能够分析图像内容与文本描述之间的逻辑关系。简单来说&a…...
效果实测:Granite-4.0-H-350M在摘要生成中的惊艳表现
效果实测:Granite-4.0-H-350M在摘要生成中的惊艳表现 1. 摘要生成,真的需要“大”模型吗? 想象一下这个场景:你刚开完一个长达一小时的线上会议,会议记录密密麻麻写了三千多字。老板让你在五分钟内提炼出三个核心结论…...







