JDBC-笔记
JDBC
1. JDBC介绍
JDBC(Java Database Connectivity)是一种用于连接和操作数据库的 Java API。

通过Java操作数据库的流程
第一步:编写Java代码
第二步:Java代码将SQL发送到MySQL服务端
第三步:MySQL服务端接收到SQL语句并执行该SQL语句
第四步:将SQL语句执行的结果返回给Java代码
2. JDBC快速入门
JDBC快速入门



package src.com.itheima.jdbc;import com.mysql.jdbc.Driver;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;//jdbc快速入门
public class JDBCDemo {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 usename = "root";String password = "123456";Connection conn = DriverManager.getConnection(url, usename, password);//3.定义sqlString sql = "UPDATE account SET money=1500 WHERE id =2;";// 4.获取执行sql的对象statementStatement stmt = conn.createStatement();//5.执行sqlint count = stmt.executeUpdate(sql); //受影响的行//6.处理结果System.out.println(count);//7.释放资源stmt.close();conn.close();}
}

案例:
https://blog.csdn.net/meini32/article/details/131981238
案例2:查询数据库中的数据
案例3:查询数据库中账户表数据,并将其封装成Account对象,,存储到ArrayList集合当中
3 JDBC-API介绍
| API | 介绍/方法 |
|---|---|
| DriverManager | 管理 JDBC 驱动程序的基本服务 |
| . | getConnection(String url, String user, String password):获取一个与指定数据库的连接。 |
| Connection | 代表一个与特定数据库的连接 |
| . | createStatement():创建一个 Statement 对象,用于执行 SQL 语句。 |
| Statement | 用于执行 SQL 语句并返回结果 |
| . | executeUpdate(String sql):执行更新语句,返回受影响的行数。 |
| ResultSet | 用于处理和操作结果集数据 |
| . | next():将指针移到下一行,如果有下一行则返回 true |
| . | getInt():获取指定列的整数值。 |
| PreparedStatement | 用于执行预编译 SQL 语句的接口(可以预防sql注入) |
sql注入案例:https://blog.csdn.net/meini32/article/details/132046575
4 数据库连接池
概念
数据库连接池是一种用于管理和维护数据库连接的技术
- 在应用程序中,每次需要访问数据库时,都需要建立一个数据库连接,这个过程是比较耗时的。当并发访问量较大时,频繁地建立和关闭数据库连接会导致服务器资源的浪费和性能的降低。通过使用数据库连接池,可以将数据库连接预先建立好,并重复利用这些连接,从而减少数据库连接的建立和关闭次数,提高服务器资源的利用率和应用程序的性能。
组成
- 连接池管理器:
连接池管理器负责管理连接池的创建、初始化、销毁和连接的分配和回收。- 一组连接池:
连接池则负责维护一组已经建立好的数据库连接- 应用:
当应用程序需要访问数据库时,连接池管理器会从连接池中获取一个可用的连接,分配给应用程序使用。当应用程序不再需要连接时,连接池管理器会将连接回收到连接池中,以便下次重复利用。
优点
- 提高应用程序的性能:使用连接池可以减少数据库连接的建立和关闭次数,从而节省服务器资源和提高应用程序的性能。
- 提高系统的稳定性:连接池可以有效地控制数据库连接的数量,避免数据库连接过多导致服务器资源耗尽和系统崩溃的情况。
- 提高数据库的安全性:连接池可以对数据库连接进行统一管理和授权,避免应用程序直接访问数据库带来的安全风险。
数据库连接池接口:DataSource
DataSource 接口提供了一组标准的方法,用于获取和管理数据库连接,应用程序可以通过该接口来访问和使用数据库连接池。DataSource 接口的实现类可以通过第三方库或应用服务器提供,常见的实现类有DBCP、C3P0、BoneCP 等。这些实现类都实现了 DataSource 接口,并提供了一些自定义的配置选项和扩展功能。
使用步骤:
1.导入jar包 druid-1.1.12.jar
2.定义配置文件
3.加载配置文件
4.获取数据库连接池对象
5.获取连接
package src.com.itheima.jdbc.com.ithema.druid;import com.alibaba.druid.pool.DruidDataSourceFactory;import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.util.Properties;public class DruidDemo {public static void main(String[] args) throws Exception {//1.导入jar包//2.定义配置文件//3.加载配置文件Properties prop = new Properties();prop.load(new FileInputStream("D:\\jdbc-demo\\src\\com\\itheima\\jdbc\\druid.properties"));//4.获取连接池对象DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);//5.获取数据库连接Connection connection = dataSource.getConnection();System.out.println(connection);System.out.println(System.getProperty("user.dir"));}
}相关文章:
JDBC-笔记
JDBC 1. JDBC介绍 JDBC(Java Database Connectivity)是一种用于连接和操作数据库的 Java API。 通过Java操作数据库的流程 第一步:编写Java代码 第二步:Java代码将SQL发送到MySQL服务端 第三步:MySQL服务端接收到SQ…...
Rust的入门篇(中)
Rust的入门篇(中) 这是接上面一篇rust入门篇(上)文章 22. 包管理一 mod nation {pub mod government {pub fn govern() {}}mod congress {pub fn legislate() {}}mod court {fn judicial() {super::congress::legislate();}} }fn main() {nation::government::govern(); }23.…...
手机设置全局代理ip步骤
在互联网时代,隐私和安全问题备受关注。使用全局代理能够帮助我们保护个人信息,突破地理限制,并提高网络速度。但是,你是否对全局代理的安全性存有疑虑?而且,如何在手机上设置全局代理呢?今天就…...
spring boot+thymeleaf+semantic ui 分页
参考: https://my.oschina.net/ayyao/blog/898041 后端 springboot 使用: com.github.pagehelper.PageInfo,作为分页对象 <!--引入分页插件--> <dependency><groupId>com.github.pagehelper</groupId><artifa…...
【JVM】(一)深入理解JVM运行时数据区
文章目录 一、JVM 运行流程二、虚拟机栈(线程私有)三、本地方法栈 (线程私有)四、方法区(元数据区)五、堆(线程共享)六、程序计数器(线程私有) 一、JVM 运行流…...
C++ QRegExpValidator
//正在表达式限制输入 QString str "\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b"; ui->lineEdit->setValidator(new QRegExpValidator(QRegExp(str))); //用于占位 ui->lineEdit->setI…...
备战秋招 | 笔试强训19
目录 一、选择题 二、编程题 三、选择题题解 四、编程题题解 一、选择题 1、二分查找的时间复杂度() A. O(N*log(N)) B. O(N) C. O(log(N)) D. O(N^2) 2、有一个单向链表中有一个A、B两个相邻元素,有一个指针p指向元素A,现将…...
第一章 计算机网络概述
第一章 计算机网络概述 1.1 计算机网络在信息时代的作用 1.2 因特网概述 网络分类: 网络:许多计算机连接在一起的的局域网; 互联网:internet许多网络连接在一起; 因特网:Internet 全球最大的互联网&…...
谷粒商城第六天-商品服务之分类管理下的获取三级分类树形列表
目录 一、总述 1.1 前端思路 1.2 后端思路 二、前端部分 2.1 在网页中建好目录及菜单 2.1.1 建好商品目录 2.1.2 建好分类管理菜单 编辑 2.2 编写组件 2.2.1 先完成组件文件的创建 2.2.2 编写组件 2.2.2.1 显示三级分类树形列表 三、后端部分 3.1 编写商品分类…...
【UI自动化测试】Appium+Python+Unittest+HTMLRunner
简介 获取AppPackage和AppActivity 定位UI控件的工具 脚本结构 PageObject分层管理 HTMLTestRunner生成测试报告 启动appium server服务 以python文件模式执行脚本生成测试报告 【B站最通俗易懂】Python接口自动化测试从入门到精通,超详细的进阶教程,看完…...
【限时优惠】红帽openstack管理课程(CL210) 即将开课
课程介绍 通过实验室操作练习,学员将能够深入学习红帽企业 Linux OpenStack 平台各服务的手动安装方法,还将了解 OpenStack 开发社区的未来发展计划。 培训地点: 线下面授:苏州市姑苏区干将东路666号401室; 远程…...
Golang之路---02 基础语法——函数
函数 函数定义 func function_name( [parameter list] ) [return_types] {函数体 }参数解释: func:函数由 func 开始声明function_name:函数名称,函数名和参数列表一起构成了函数签名。[parameter list]:参数列表&a…...
数据结构和算法入门(时间/空间复杂度介绍--java版)
数据结构和算法入门(时间/空间复杂度介绍–java版) write in front 作者: 向大佬学习 专栏: 数据结构(java版) 作者简介:大二学生 希望能学习其同学和大佬的经验! 本篇博客简介&…...
Spring Mvc 文件上传(MultipartFile )—官方原版
一、创建应用程序类 要启动Spring Boot MVC应用程序,首先需要一个启动器。在这个示例中,已经添加了spring-boot-starter thymelaf和spring-boot-starter web作为依赖项。要使用Servlet容器上传文件,您需要注册一个MultipartConfigElement类&…...
【E题】2023年电赛运动目标控制与自动追踪系统方案
系统的设计和制作可以按照以下步骤进行: 设计红色光斑位置控制系统: 选择合适的红色激光笔,并将其固定在一个二维电控云台上。 使用电机和编码器来控制电控云台的水平和垂直运动。 设计一个控制电路,可以通过输入控制信号来控制…...
企业网络安全之零信任和身份认证
零信任并不是一种技术,而是一个安全概念,是一种建立安全战略的理念、方法和框架。 零信任提供了一系列概念和思想,其中心思想是怀疑一切,否定一切,不再以网络边界为限,不能再将内部网络定义为可信任的&…...
【雕爷学编程】MicroPython动手做(28)——物联网之Yeelight 5
知识点:什么是掌控板? 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片,支持WiFi和蓝牙双模通信,可作为物联网节点,实现物联网应用。同时掌控板上集成了OLED…...
[运维|中间件] 东方通TongWeb使用笔记
参考文献 东方通tongweb部署服务 东方通tongweb部署服务 使用笔记 默认访问地址 http://ip:9060/console/默认用户名密码 TongWeb7.0默认用户名密码:thanos,thanos123.com...
WIZnet W6100-EVB-Pico DHCP 配置教程(三)
前言 在上一章节中我们讲了网络信息配置,那些网络信息的配置都是用户手动的去配置的,为了能跟电脑处于同一网段,且电脑能成功ping通板子,我们不仅要注意子网掩码,对于IP地址主机位和网络位的划分,而且还要注…...
【Linux】Ansible 脚本 playbook 剧本
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Ansible 脚本 playbook 剧本 playbook 剧本Templates 模块tags 模块Roles 模块在一个 playbook 中使用 roles 的步骤 playbook 剧本 playbooks 本身由以下各部分组成 &#…...
工业级字符识别实战:C#结合YOLO+Tesseract实现药品批号与电子元件丝印精准校验
在工业自动化生产线上,字符识别一直是质量管控的核心环节。从药品包装的批号、有效期到电子元件的丝印型号、批次号,每一个字符的错误都可能导致严重的产品质量问题甚至安全事故。 传统的OCR方案在面对工业场景时往往力不从心:字符倾斜、背景…...
【Lovable前端黄金标准】:基于87万行生产代码分析出的4项可量化体验指标及达标路径
更多请点击: https://intelliparadigm.com 第一章:Lovable前端黄金标准的提出背景与核心价值 在现代Web应用复杂度持续攀升、用户期望指数级增长的背景下,前端开发已从“功能可用”迈向“体验可感、情感可触”的新阶段。传统以性能、兼容性、…...
如何免费使用ColabFold进行蛋白质结构预测:面向新手的终极指南
如何免费使用ColabFold进行蛋白质结构预测:面向新手的终极指南 【免费下载链接】ColabFold Making Protein folding accessible to all! 项目地址: https://gitcode.com/gh_mirrors/co/ColabFold ColabFold蛋白质结构预测是生物信息学领域的一项革命性技术&a…...
java之微信机器人二次开发文档
WTAPI框架weixin ipad 协议 在微信个人号二次开发中的应用,涵盖技术架构、核心功能、开发流程及安全合规要点,为开发者提供系统化解决方案。 ⚡ 核心能力 好友管理:添加好友、删除好友、修改备注、创建标签、获取好友列表、搜索好友信息 消息…...
避坑指南:在Ubuntu 20.04上配置VNC远程桌面,为什么我推荐UltraVNC Viewer而不是TigerVNC?
Ubuntu 20.04远程桌面配置:为什么UltraVNC Viewer成为技术中坚的首选? 在Linux桌面环境远程管理的世界里,VNC协议就像一位历经沧桑的老兵,依然活跃在企业运维、远程开发和混合办公的第一线。Ubuntu 20.04 LTS作为长期支持版本&…...
CANN/pypto Tensor索引功能
pypto.Tensor索引功能说明 【免费下载链接】pypto PyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。 项目地址: https://gitcode.com/cann/pypto Tensor索引是Tensor的核心操作之一,用于从Tensor中筛选、…...
专业级抖音资源自动化采集方案:douyin-downloader企业级部署指南
专业级抖音资源自动化采集方案:douyin-downloader企业级部署指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fall…...
Windows Defender移除终极指南:如何彻底禁用微软安全组件提升系统性能30%
Windows Defender移除终极指南:如何彻底禁用微软安全组件提升系统性能30% 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.…...
基于Rust与Skia构建高性能跨平台文本编辑器的架构设计与实现
1. 项目概述:为什么我们需要一款“超越者”?在程序员和文本工作者的日常工具箱里,文本编辑器占据着举足轻重的地位。它不像IDE那样庞大臃肿,却需要具备处理代码、日志、配置文件的强大能力。长久以来,Notepad以其轻量、…...
Token聚合平台 vs 传统云 vs AI原生云,AI推理应用怎么选?
在大模型能力深度融入生产环境的当下,后端 AI 架构的选择往往决定了应用的生死。从早期的“调用一个接口”到如今复杂的智能体(Agent)工作流,开发团队在底座选型上面临着两条截然不同的演进路径:一条是追求便利与极致轻…...
