当前位置: 首页 > news >正文

JDBC1 Mysql驱动,连接数据库

JDBC

一、JDBC

Java Database Connectivity:Java访问数据库的解决方案
JDBC定义了一套标准接口,即访问数据库的通用API, 不同的数据库厂商根据各自数据库的特点去实现这些接口。
JDBC希望用相同的方式访问不同的数据库,让具体的数据库操作与数据库厂商实现无关,从而在不同数据库之间轻易的进行切换

1.JDBC相关类和接口

Driver 接口:加载驱动程序。
DriverManager 类:装人所需的 JDBC 驱动程序,编程时调用它的方法来创建连接。
Connection 接口:编程时使用该类对象创建 Statement 对象。
Statement 接口:编程时使用该类对象得到 ResultSet 对象。
ResultSet 类:负责保存 Statement 执行后所产生的查询结果。

1.1DriverManager

DriverManager:驱动管理对象
注册驱动(告诉程序该使用哪一个数据库驱动)
在com.mysql.jdbc.Driver类中存在静态代码块(通过查看源码发现)

//这是com.mysql.jdbc.Driver的静态代码块,只要使用这个类,就会执行这段代码
//而Class.forName("com.mysql.jdbc.Driver")就正好使用到了这个类
static {try {java.sql.DriverManager.registerDriver(new Driver());} catch (SQLException E) {throw new RuntimeException("Can't register driver!");}
}

注意:我们不需要通过DriverManager调用静态方法registerDriver(),因为只要Driver类被使用,则会执行其静态代码块完成注册驱动

所以后边我们其实可以省略注册驱动的步骤(可以注释掉上个案例的注册驱动的步骤,也可以查询到数据)
mysql5之后可以省略注册驱动的步骤。在jar包中,存在一个java.sql.Driver配置文件,文件中指定了com.mysql.jdbc.Driver

获取数据库连接(获取到数据库的连接并返回连接对象)

static Connection getConnection(String url, String user, String password);
返回值:Connection数据库连接对象
参数
url:指定连接的路径。语法:jdbc:mysql://ip地址(域名):端口号/数据库名称
user:用户名
password:密码
1.2Connection

Connection:数据库连接对象
获取执行者对象
获取普通执行者对象:Statement createStatement();
获取预编译执行者对象:PreparedStatement prepareStatement(String sql);
管理事务
开启事务:setAutoCommit(boolean autoCommit); 参数为false,则开启事务。
提交事务:commit();
回滚事务:rollback();
释放资源
立即将数据库连接对象释放:void close();

1.3Statement

Statement:执行sql语句的对象
执行DML语句:int executeUpdate(String sql);
返回值int:返回影响的行数。
参数sql:可以执行insert、update、delete语句。
执行DQL语句:ResultSet executeQuery(String sql);
返回值ResultSet:封装查询的结果。
参数sql:可以执行select语句。
释放资源
立即将执行者对象释放:void close();

在这里插入图片描述

1.4ResultSet

ResultSet:结果集对象
判断结果集中是否还有数据:boolean next();
有数据返回true,并将索引向下移动一行
没有数据返回false
获取结果集中的数据:XXX getXxx(“列名”);
XXX代表数据类型(要获取某列数据,这一列的数据类型)
例如:String getString(“name”); int getInt(“age”);
释放资源
立即将结果集对象释放:void close();

2.JDBC工作原理

在这里插入图片描述

二、连接mysql数据库

1.导入jar包

创建lib目录,然后导入mysql-connector-java-8.0.22.jar,右键Bulid Path
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 使用DriverManager加载驱动类

加载驱动类
通过Class.forName( )方法(反射) 完成驱动类的注册
找到驱动类 右键复制全路径
在这里插入图片描述

3.Connection接口

根据URL连接找到对应的

http://www.lryc.cn/news/424138.html

相关文章:

  • LeetCode 205 同构字符串
  • ARM高性能计算(HPC)处理器Neoverse介绍
  • 【每日力扣中医养生】力扣1298. 你能从盒子里获得的最大糖果数
  • 大数据-81 Spark 安装配置环境 集群环境配置 超详细 三台云服务器
  • C#创建一个自定义控件类
  • springboot牙科就诊管理系统--论文源码调试讲解
  • CUDA+tensorflow+python+vscode在GPU下环境安装及问题汇总与解答
  • 24/8/14算法笔记 复习_逻辑回归sigmoid
  • MySQL忘记/无root密码,强制修改root密码
  • 探索 MongoDB 的 $currentDate:解决 TTL 时间不同步问题的利器
  • defineModel
  • 去中心化技术的崛起:探索Web3的新时代
  • GNU/Linux - copy_{to,from}_user: 用户和内核空间的内存互拷贝
  • 进阶岛任务1: 探索 InternLM 模型能力边界
  • RabbitMQ实现多线程处理接收消息
  • AI智能网关 边缘计算 视觉AI
  • Java基础之原反补码
  • Unity如何使用Spine动画导出的动画
  • 变量位操作
  • 内网渗透—横向移动RDPWinRMWinRSSPN扫描Kerberos攻击
  • Python套接字综合应用(UDP篇)
  • 服务器安装哪吒面板详细教程
  • LLM微调(精讲)-以高考选择题生成模型为例(DataWhale AI夏令营)
  • 安全基础学习-RC4加密算法
  • 雨云宁波电信大带宽服务器测评(非广告)
  • 2024年,最新前端趋势
  • Linux静态进程和动态进程查看管理
  • CPU飙升 怎么定位问题
  • The Sandbox 游戏制作教程第 4 章|使用装备制作游戏,触发独特互动
  • JS 和 JSX、TS 和 TSX 的区别