java -- JDBC

news2024/11/15 18:41:52

一.JDBC概述:

过java语言操作数据库中的数据。

1.JDBC概念

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于
执行SQL语句的Java API。JDBC是Java访问数据库的标准规范,可以
为不同的关系型数据库提供统一访问,它由一组用Java语言编写的
接口和类组成。

JDBC是接口,由数据库生产厂商提供规范的实现类称为驱动

Java程序,JDBC接口Mysql 实现类  驱动MySql
Oracle 实现类 驱动 Oracle

二.JDBC入门

1 准备MySql数据

2 导入驱动

官网下载数据库连接驱动jar包。
https://downloads.mysql.com/archives/c-j/
创建Java项目,在项目下创建lib文件夹,将下载的驱动jar包复制到
文件夹里。

选中Jar包右键->Add as Library,与项目集成。

3 代码实现

  • DriverManager(类): 用于注册驱动和获取连接
  • Connection(接口): 表示与数据库创建的连接
  • Statement(接口): 执行SQL语句的对象
  •  ResultSet(接口): 结果集或一张虚拟表


 以上接口由MySQL驱动程序jar包,提供实现类

三.JDBC API详解

1. DriverManager          注册驱动

获得链接

static Connection getConnection(String url, String
user, String password)
String url:连接数据库的URL,用于说明连接数据库的位置
String user:数据库的账号
String password:数据库的密码
连接数据库的URL地址格式:协议名:子协议://服务器名或IP地址:端
口号/数据库名?参数=参数值&参数=参数值

3. Connection

接口的实现在数据库驱动中。所有与数据库交互都是基于连接对象
的。
在建立连接时,需要指定数据库URL、用户名、密码。
Connection 接口还负责管理事务
获取执行 SQL 的对象

  • 普通执行SQL对象,Statement createStatement()
  • 预编译SQL的执行SQL对象,PreparedStatement prepareStatement(sql)

4. Statement 

接口的实现在数据库驱动中。Statement接口用于执行 SQL 语句并
与数据库进行交互。通过 Statement对象,可以向数据库发送 SQL
语句并获取执行结果。

  • int executeUpdate():执行insert update delete语句
  • ResultSet executeQuery():执行select语句

5. PreparedStatement
PreparedStatement是 Statement接口的子接口,用于执行预编译
的 SQL 查询

  • 预编译SQL语句:在创建PreparedStatement时,就会预编译SQL语句,也就是SQL语句已经固定。
  • 防止SQL注入:将数据作为参数传递到SQL语句中,采用?占位符的方式,有效防止传入关键字导致SQL注入问题。让参数就是参数
  • 性能提升:PreparedStatement是预编译SQL语句,同一SQL语句多次执行的情况下,可以复用,不必每次重新编译和解析。

实列

登录

 五.JDBC工具类的抽取

创建配置文件,配置文件在resource目录下,并且要将resources目录标记为资源文件的根路径,扩展名是properties

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

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

相关文章

Mathematics(未完成)

点击字母M有惊喜 /*Mathematics */ #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <easyx.h> #include <math.h> #define L 4 #define H 80 #define T 0.3141592653589793 #define T0 10 #define PI 3.1415926535897932 …

fiddler抓包01:工具介绍

课程大纲 fiddler是一款常见的抓包工具&#xff0c;可以对web端和移动端的接口请求进行抓包&#xff08;截获&#xff09;、分析、编辑、模拟等&#xff0c;还可以导出jmeter、Loadrunner测试脚本。 1、原理 fiddler作为代理服务器&#xff0c;拦截请求和服务器响应。 2、使用…

图像放大的软件PhotoZoom 9新功能介绍及安装激活使用指南

最近&#xff0c;全世界大量巨头企业都在人工智能领域投入大笔的科研经费&#xff0c;而和有关人工智能的话题也一直吸引着人们的眼球。像“无人驾驶”、“智能交互”、“物联网”等新兴行业&#xff0c;也对人工智能有着迫切的需求。 AI人工智能影响了社会的方方面面。 之前有…

sqlgun靶场攻略

步骤一&#xff1a;打开页面 步骤二&#xff1a;测试回显点 -1union select 1,2,3# 步骤三&#xff1a;查看数据库名 -1union select 1,2,database()# 步骤四&#xff1a;查看表名 -1union select 1,2,group_concat(table_name) from information_schema.tables where table…

【IP协议】IP协议报头结构

文章目录 IP 协议报头结构4位版本4位首部长度8位服务类型16位总长度16位标识、3位标志、13位片偏移8位生存时间8位协议16位首部校验和32源 IP 地址、32位目的 IP 地址 IP 协议报头结构 4位版本 实际上只有两个取值 4 > IPv4&#xff08;主流&#xff09;6 > IPv6 IPv2&…

electron-updater实现electron全量版本更新

在 Electron 应用中使用 electron-updater 来实现自动更新功能时&#xff0c;通常你会在一个专门的模块或文件中管理更新逻辑。如果你想要使用 ES6 的 import 语法来引入 electron-updater&#xff0c;你需要确保你的项目已经配置好了支持 ES6 模块的构建工具&#xff08;如 We…

MiniBlogum项目简介

MiniBlogum项目简介 文章目录 MiniBlogum项目简介一、引言二、技术栈与开发环境三、主要功能&#xff08;一&#xff09;用户注册与登录&#xff08;二&#xff09;查看当前登录用户/作者头像、昵称、Gitee仓库地址&#xff08;三&#xff09;查看博客列表&#xff08;四&#…

HAL库STM32常用外设教程(四)—— 定时器 基本定时

HAL库STM32常用外设教程&#xff08;四&#xff09;—— 定时器 基本定时 文章目录 HAL库STM32常用外设教程&#xff08;四&#xff09;—— 定时器 基本定时前言一、定时器特性概述二、基础定时器的结构和功能1、基本特征2、基础定时器相关寄存器3、基础定时器工作流程4、基础…

基于python+django+vue的家居全屋定制系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…

文件误删除后的数据救援实战指南

在数字化时代&#xff0c;文件误删除成为了许多用户心头挥之不去的阴影。无论是手误点击了“删除”键&#xff0c;还是系统崩溃导致的数据丢失&#xff0c;文件一旦从我们的视线中消失&#xff0c;往往伴随着重要信息的流失和工作的中断。本文将深入探讨文件误删除的现象&#…

kubernetes技术详解,带你深入了解k8s

目录 一、Kubernetes简介 1.1 容器编排应用 1.2 Kubernetes简介 1.3 k8s的设计架构 1.3.1 k8s各个组件的用途 1.3.2 k8s各组件之间的调用关系 1.3.3 k8s的常用名词概念 1.3.4 k8s的分层结构 二、k8s集群环境搭建 2.1 k8s中容器的管理方式 2.2 k8s环境部署 2.2.1 禁用…

如何在GitHub上克隆仓库:HTTPS、SSH和GitHub CLI的区别

GitHub是开发者的天堂&#xff0c;提供了丰富的工具和功能来管理代码和项目。在克隆GitHub仓库时&#xff0c;你可能会遇到三种常见的方法&#xff1a;HTTPS、SSH和GitHub CLI。每种方法都有其独特的优势和适用场景。本文将深入探讨这三种克隆方式的区别&#xff0c;帮助你选择…

AI助力遥感影像智能分析计算,基于高精度YOLOv5全系列参数【n/s/m/l/x】模型开发构建卫星遥感拍摄场景下地面建筑物智能化分割检测识别系统

随着科技的飞速发展&#xff0c;卫星遥感技术已成为获取地球表面信息的重要手段之一。卫星遥感图像以其覆盖范围广、数据量大、信息丰富等特点&#xff0c;在环境监测、城市规划、灾害评估等多个领域发挥着不可替代的作用。然而&#xff0c;面对海量的卫星图像数据&#xff0c;…

react hooks--useLayoutEffect

概述 ◼ useLayoutEffect看起来和useEffect非常的相似&#xff0c;事实上他们也只有一点区别而已&#xff1a;  useEffect会在渲染的内容更新到DOM上后执行&#xff0c;不会阻塞DOM的更新&#xff1b;  useLayoutEffect会在渲染的内容更新到DOM上之前执行&#xff0c;会…

JUC学习笔记(二)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 四、共享模型之内存4.1 Java 内存模型4.2 可见性退不出的循环解决方法可见性 vs 原子性模式之 Balking1.定义2.实现 4.3 有序性原理之指令级并行1. 名词2.鱼罐头的故…

STM32巡回研讨会总结(2024)

前言 本次ST公司可以说是推出了7大方面&#xff0c;几乎可以说是覆盖到了目前生活中的方方面面&#xff0c;下面总结下我的感受。无线类 支持多种调制模式&#xff08;LoRa、(G)FSK、(G)MSK 和 BPSK&#xff09;满足工业和消费物联网 (IoT) 中各种低功耗广域网 (LPWAN) 无线应…

【Android 13源码分析】WindowContainer窗口层级-4-Layer树

在安卓源码的设计中&#xff0c;将将屏幕分为了37层&#xff0c;不同的窗口将在不同的层级中显示。 对这一块的概念以及相关源码做了详细分析&#xff0c;整理出以下几篇。 【Android 13源码分析】WindowContainer窗口层级-1-初识窗口层级树 【Android 13源码分析】WindowCon…

计算机的错误计算(九十五)

摘要 从计算机的错误计算&#xff08;八十六&#xff09;至&#xff08;九十四&#xff09;&#xff0c;其主题均涉及对数运算。本节用错数解释&#xff08;九十四&#xff09;中的错误计算的原因。其余类似。 首先&#xff0c;由计算机的错误计算&#xff08;二十七&#xf…

QUIC的loss detection学习

PTO backoff backoff 补偿 /ˈbkɒf/PTO backoff 是QUIC&#xff08;Quick UDP Internet Connections&#xff09;协议中的一种机制&#xff0c;用于处理探测超时&#xff08;Probe Timeout, PTO&#xff09;重传策略 它逐步增加探测超时的等待时间&#xff0c;以避免网络拥塞…

外网(公网)访问VMware workstation 虚拟机内web网站的配置方法---端口转发总是不成功的原因

问题背景&#xff1a;客户提供的服务器操作系统配置web程序时&#xff0c;总是显示莫名其妙的问题&#xff0c;发现是高版本操作系统的.net库已经对低版本.net库进行了大范围修订&#xff0c;导致在安全检测上、软件代码规范上更加苛刻&#xff0c;最终导致部署不成功。于是想到…