JDBC(Java Data Base Connectivity)

1.什么是JDBC

MySQL提供了一组API(Application Programming Interface-应用程序编程接口,类似于MysQL提供一组类/函数),供其它程序调用,但是由于

1.MySQL的原生API是C风格的,idea无法直接调用

2.并且不同数据库服务器(MySQL、SQLSever、Navicat...)提供的API不同(底层通信协议、操作方式等)

所以Java官方提供了一套统一的标准接口/规范JDBC,其规定了"如何连接数据库、执行SQL、处理结果集",所有的API按照这套接口规范来实现自己的数据库驱动

使用JDBC就能在idea里编写代码操作数据库

2.驱动程序

如果要使用JDBC编写代码操作数据库,就要安装配套的 数据库驱动程序

maven官网:https://mvnrepository.com/下载驱动

驱动导入idea的project中

在项目下创建一个目录

复制jar文件,粘贴至新建目录下

右键lib,选择add as library,让项目能够识别

3.JDBC编程-在main函数中编写

1.创建数据源对象

数据源,即数据来自哪里。MySQL、SQLSever是数据库-服务器结构,SQLite DB2是本地程序,统称为数据源

DataSource是JDBC定义的接口,导入javax.sql.DataSource包

MysqlDataSource是MysQL驱动里实现的类,实现JDBC的DataSource接口

DataSource是接口,不是类,所以不能创建DataSource对象

2.设置数据源属性

DataSource里没有实现这几个方法,所以把对象向下转型

或者直接写为

区别:

第一种写法耦合性更低(关联关系越小)

1.初始化Url

URL字符串:标识一个网络上的唯一资源地址

dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/stu3?charracterEncoding=utf8&useSSL=false");

一个数据包要给哪个主机,根据ip地址区分

给目标主机的哪个程序,根据端口号来区分

2.初始化User

3.初始化Password

3.和数据库服务器进行通信,建立网络连接

getConnection抛SQLException异常

4.构造SQL语句

sql是字符串格式的SQL,实际上需要"语句对象"

PreparedStatement是预处理过的语句

Statement

未预处理的SQL。一个SQL的处理过程:数据库服务器收到SQL------对SQL进行语法检查和解析------执行

这消耗了一定的数据库服务器资源

PreparedStatement

预处理过的语句。在客户端这里对SQL进行语法检查和解析------把解析好的中间结果发给服务器

这就节省了数据库服务器的开销

5.执行SQL

相关推荐
计算机安禾3 小时前
【c++面向对象编程】第24篇:类型转换运算符:自定义隐式转换与explicit
java·c++·算法
雪度娃娃3 小时前
转向现代C++——优先选用nullptr而不是0和NULL
开发语言·c++
weixin199701080163 小时前
【保姆级教程】淘宝/天猫商品详情 API(item_get)接入指南:Python/Java/PHP 调用示例与 JSON 返回值解析
java·python·php
萌新小码农‍3 小时前
python装饰器
开发语言·前端·python
环流_3 小时前
redis核心数据类型在java中的操作
java·数据库·redis
KK溜了溜了3 小时前
Python从入门到精通
服务器·开发语言·python
雨辰AI3 小时前
SpringBoot3 项目国产化改造完整流程|从 MySQL 到人大金仓落地
java·数据库·后端·mysql·政务
带刺的坐椅4 小时前
Java 流程编排新范式 Solon Flow:一个引擎,七种节点,覆盖规则/任务/工作流/AI 编排全场景
java·spring·ai·solon·flow
故事和你914 小时前
洛谷-【图论2-1】树5
开发语言·数据结构·c++·算法·动态规划·图论
threelab4 小时前
Three.js 初中数学函数可视化 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器