Java JDBC教程:连接与操作数据库的关键步骤与示例
需积分: 9 12 浏览量
更新于2024-07-09
收藏 825KB PDF 举报
JDBC(Java Database Connectivity)是Java平台下用于与关系型数据库进行交互的标准API,它允许开发者通过纯Java代码来连接、操作数据库。JDBC的核心组件包括`java.sql.Connection`(数据库连接对象)、`java.sql.PreparedStatement`(预编译SQL语句对象)、`java.sql.ResultSet`(结果集对象)以及`java.sql.Driver`和`java.sql.DriverManager`,它们共同构建了与数据库交互的基本框架。
在使用JDBC时,主要遵循以下几个关键步骤:
1. 加载驱动:首先需要将数据库驱动的JAR包加载到Java Virtual Machine(JVM)中,这通常通过`Class.forName()`方法完成,例如针对MySQL的JDBC驱动`com.mysql.jdbc.Driver`。
2. 连接数据库:通过`DriverManager.getConnection()`方法,传入数据库URL、用户名和密码来建立一个`Connection`对象,这是与数据库服务器建立连接的桥梁。
3. 编写SQL语句:在程序中编写符合数据库语法的SQL查询或操作命令,如创建表(如示例中的`CREATE TABLE t_person`)。
4. 发送SQL:使用`PreparedStatement`对象(PreparedStatement对象可以防止SQL注入攻击,因为它会预编译SQL语句)来发送SQL,通过构造函数传递`Connection`对象获取。
5. 执行SQL并处理结果:执行`PreparedStatement`的`executeQuery()`或`executeUpdate()`方法,返回`ResultSet`对象,该对象包含查询结果,可以遍历获取每一行数据。对于更新操作,可能会返回影响的行数。
6. 资源管理:确保在使用完`ResultSet`和`PreparedStatement`后,调用各自的`close()`方法释放资源,遵循“开-用-关”的原则,以防止内存泄漏。
下面是一个简单的JDBC示例代码片段,展示了如何执行上述操作:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
public class JDBCExample {
public static void main(String[] args) throws Exception {
// 0. 加载驱动
Class.forName("com.mysql.jdbc.Driver");
// 1. 连接数据库
String url = "jdbc:mysql://localhost:3306/mydatabase";
String user = "username";
String password = "password";
Connection conn = DriverManager.getConnection(url, user, password);
// 2. 编写SQL
String sql = "INSERT INTO t_person (name, age, sex, phone, address) VALUES (?, ?, ?, ?, ?)";
// 3. 发送SQL
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "John Doe");
ps.setInt(2, 25);
ps.setString(3, "Male");
ps.setString(4, "1234567890");
ps.setString(5, "New York");
// 4. 执行SQL
int rowsInserted = ps.executeUpdate();
// 5. 处理结果
System.out.println("Rows inserted: " + rowsInserted);
// 6. 释放资源
ps.close();
conn.close();
}
}
```
通过这个例子,我们可以看到JDBC如何在Java程序中实现了与数据库的交互,使得跨数据库平台的操作变得可能。
2020-05-14 上传
2021-08-27 上传
2021-08-24 上传
2009-11-04 上传
2018-05-16 上传
2021-10-26 上传
2010-04-17 上传
2021-03-04 上传
小太阳讷~
- 粉丝: 141
- 资源: 27
最新资源
- 土木工程毕业设计——【8层】8400平米综合办公楼毕业设计(含计算书,建筑、结构图,施组).zip
- 技术交底及其安全资料库-混凝土泵送安全操作规程技术交底
- mnist-original数据
- WWDC2015IntroPlayground:尝试使用Core Animation重新创建WWDC 2015简介视频
- AndroidFreetypeSample:Android Freetype示例
- 很不错的Java计算器源码.zip
- pyFormex-开源
- KendoUI-Admin-Site-master.zip
- 前端阿彬的站点。 各种工具的配置枚举列表; 各种好用的工具汇总; 一些小游戏,特效.zip
- 房地产工程-营销策划类-成都市五块石商业地产-赫杰斯顾问24DOC
- 土木工程毕业设计——【8层】5171.22㎡8层住宅建筑工程预算书及施组(建筑、结构图纸).zip
- react对SCLAlertView-Swift包的本地React-JavaScript开发
- Predicting-Lead-Score:在这里有一个python笔记本。 任务是预测公司营销团队产生的线索的得分或质量。 这有助于销售部门对销售线索进行排序,并可以分析他们必须首先击中哪些销售线索。 在此算法中,我使用了---> RandomForestRegressor(Accuracy = 0.678),Gradient Boosting Regressor(Accuracy = 0.699)
- code-together:实时在线网络应用
- watsonwork-dilbert-bot:搜索迪尔伯特漫画
- Python库 | indy_crypto-0.5.1-rc-1.tar.gz