网站首页 > 开源技术 正文
JDBC
JDBC(Java Database Connectivity)是 Java 提供的一种标准的关系型数据库访问方式,提供了数据库操作的接口API。Java 程序可以通过API完成连接数据库、执行 SQL 查询、更新和存储过程等操作。源码在JDK的java.sql包下。
JDBC主要组件包括:
- DriverManager: 用于获取数据库连接的基本类,负责管理一组数据库驱动程序。
- Connection: 表示与数据库的连接,通过它可以创建 Statement 和 PreparedStatement 对象。
- Statement: 用于执行静态 SQL 语句并返回它所生成结果的对象。
- PreparedStatement: 继承自 Statement,用于执行预编译的 SQL 语句,可以提高性能并防止 SQL 注入攻击。
- ResultSet: 表示数据库结果集的数据表,通常通过执行查询获取,并用于检索和遍历结果集中的数据。
JDBC Driver
JDBC 提供了的API是标准的、平台无关, Java 应用程序通过这些API即可完成与不同的关系型数据库进行交互,例如 MySQL、PostgreSQL、Oracle 等。但是,通过接口并不能直接完成数据库访问,因为缺乏底层的实现支持。
需要实际完成对数据库的操作,还需要引入具体的数据库类型的驱动程序,JDBC 驱动程序实现了 JDBC API 中定义的接口和功能,将 JDBC API 中的方法调用转换为特定数据库的通信协议,从而实现与数据库的连接和数据交换。
每种数据库都有自己的 JDBC 驱动程序(Driver),用于实现 JDBC API 并与特定数据库进行通信。常见的数据库与其Driver如下:
MySQL |
|
Oracle Database |
|
Microsoft SQL Server |
|
PostgreSQL |
|
SQLite |
|
IBM Db2 |
|
H2 Database |
|
Derby Database(Apache Derby) |
|
使用
public class DatabaseConnect {
public static void main(String[] args) {
// 数据库连接信息
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "123456";
try {
// 加载并注册MySQL驱动程序
Class.forName("com.mysql.cj.jdbc.Driver");
// 建立数据库连接
Connection connection = DriverManager.getConnection(url, user, password);
// 创建Statement对象
Statement statement = connection.createStatement();
// 执行SQL查询
String sql = "SELECT * FROM li_admin_user";
ResultSet resultSet = statement.executeQuery(sql);
// 处理查询结果
while (resultSet.next()) {
// 获取每一行数据的字段值
long id = resultSet.getLong("id");
String name = resultSet.getString("nick_name");
// 其他字段类似地获取
System.out.println("ID: " + id + ", Name: " + name);
}
// 关闭连接
resultSet.close();
statement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
猜你喜欢
- 2024-11-10 一杯茶的功夫就把日志搜索引擎性能调优了?
- 2024-11-10 详解MySQL复制拓扑管理工具Orchestrator--高可用机制
- 2024-11-10 JAVA数据库编程(java数据库编程包含哪些类)
- 2024-11-10 Django的用户表创建(四)(django自定义user表)
- 2024-11-10 数据库编程入门(数据库编程步骤)
- 2024-11-10 AOT使用经验总结(aot应用)
- 2024-11-10 AlpineLinux安装部署php8(alpine linux安装python)
- 2024-11-10 C++ Qt面试题 | 精选25题(c++,qt)
- 2024-11-10 一杯茶的功夫就把日志搜索引擎性能调优了
- 2024-11-10 Flask-Login处理用户登录和认证(flask login current_user)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)