Java JDBC连接数据库常见操作总结
JDBC介绍
Java 数据库连接 (Java Database Connectivity, JDBC) 是一种用于执行 SQL 语句的 Java API,可以为多个关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成,可以使 Java 应用程序轻松地访问数据库。
JDBC 本质上是通过 JNI(Java Native Interface)来调用本地代码实现的。这些本地代码组成的库被称作 JDBC 驱动程序(JDBC Driver)。JDBC 主要分为四个部分:JDBC 驱动管理器、JDBC 驱动程序、JDBC API 和 JDBC 数据库的连接。
JDBC连接数据库
使用 JDBC 连接数据库只需以下几步:
- 导入 JDBC 驱动包:需要将 JDBC 驱动包放到 CLASSPATH 中,否则程序无法找到 JDBC 驱动。
- 加载 JDBC 驱动程序:可以使用 Class.forName() 方法来加载 JDBC 驱动,例如加载 MySQL 驱动的代码为:Class.forName("com.mysql.jdbc.Driver");
- 获取数据库连接对象:使用 DriverManager.getConnection() 方法获取数据库连接对象,需要传入数据库 URL、用户名和密码。
- 执行 SQL 语句:可以使用 Statement 或 PreparedStatement 对象执行 SQL 语句。
- 处理查询结果:使用 ResultSet 对象处理查询结果。
下面我们将通过两个示例说明如何连接数据库。
示例1:连接 MySQL 数据库
步骤1:导入 JDBC 驱动包
假设我们使用 MySQL 数据库,需要先下载 MySQL 的 JDBC 驱动包,下载地址为:https://dev.mysql.com/downloads/connector/j/。将下载得到的 JDBC 驱动包放到项目的 lib 目录下。
步骤2:加载 JDBC 驱动程序
加载 MySQL 驱动的代码为:
Class.forName("com.mysql.jdbc.Driver");
步骤3:获取数据库连接对象
获取 MySQL 数据库连接对象的代码为:
String url = "jdbc:mysql://localhost:3306/test?useSSL=false";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);
其中,url 是连接字符串,test 是数据库名称,root 是用户名,123456 是密码。这里的 useSSL=false 表示不使用 SSL 连接。
步骤4:执行 SQL 语句
假设我们要执行一条查询语句,查询表中的所有数据,代码如下:
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM user");
步骤5:处理查询结果
我们可以使用 ResultSet 对象处理查询结果,代码如下:
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String email = rs.getString("email");
System.out.println(id + "\t" + name + "\t" + email);
}
完整的示例代码如下:
import java.sql.*;
public class MySQLDemo {
public static void main(String[] args) throws Exception {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test?useSSL=false";
String user = "root";
String password = "123456";
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM user");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String email = rs.getString("email");
System.out.println(id + "\t" + name + "\t" + email);
}
rs.close();
stmt.close();
conn.close();
}
}
输出结果为:
1 Alice alice@example.com
2 Bob bob@example.com
3 Carol carol@example.com
示例2:连接 Oracle 数据库
步骤1:导入 JDBC 驱动包
假设我们使用 Oracle 数据库,需要先下载 Oracle 的 JDBC 驱动包,下载地址为:http://www.oracle.com/technetwork/database/features/jdbc/default-2280470.html。将下载得到的 JDBC 驱动包放到项目的 lib 目录下。
步骤2:加载 JDBC 驱动程序
加载 Oracle 驱动的代码为:
Class.forName("oracle.jdbc.driver.OracleDriver");
步骤3:获取数据库连接对象
获取 Oracle 数据库连接对象的代码为:
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String password = "tiger";
Connection conn = DriverManager.getConnection(url, user, password);
其中,url 是连接字符串,localhost 是主机名,1521 是端口号,orcl 是数据库实例名。这里的 thin 表示用 thin 驱动连接,@ 后面的 : 表示用冒号隔开,依次是主机名、端口号和数据库实例名。
步骤4:执行 SQL 语句
假设我们要执行一条查询语句,查询表中的所有数据,代码如下:
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM emp");
步骤5:处理查询结果
我们可以使用 ResultSet 对象处理查询结果,代码如下:
while (rs.next()) {
int empno = rs.getInt("empno");
String ename = rs.getString("ename");
String job = rs.getString("job");
System.out.println(empno + "\t" + ename + "\t" + job);
}
完整的示例代码如下:
import java.sql.*;
public class OracleDemo {
public static void main(String[] args) throws Exception {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String password = "tiger";
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM emp");
while (rs.next()) {
int empno = rs.getInt("empno");
String ename = rs.getString("ename");
String job = rs.getString("job");
System.out.println(empno + "\t" + ename + "\t" + job);
}
rs.close();
stmt.close();
conn.close();
}
}
输出结果为:
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
7566 JONES MANAGER
7654 MARTIN SALESMAN
7698 BLAKE MANAGER
7782 CLARK MANAGER
7788 SCOTT ANALYST
7839 KING PRESIDENT
7844 TURNER SALESMAN
7876 ADAMS CLERK
7900 JAMES CLERK
7902 FORD ANALYST
7934 MILLER CLERK
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java JDBC连接数据库常见操作总结 - Python技术站