侧边栏壁纸

JDBC的基本使用

2024年03月12日 253阅读 0评论 1点赞

JDBC使用教程

JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、特定网络和特定硬件平台的接口,用于执行SQL语句。以下是使用JDBC的基本步骤:

1. 注册驱动

要与数据库建立连接,首先需要注册数据库的驱动。这一步是告诉Java应用程序要连接的数据库类型。

try{
    // 加载数据库驱动类
    //DriverManager.registerDriver(new Driver())这一步在驱动4+版本已不是必须的
    //驱动版本8+:com.mysql.cj.jdbc.Driver
    //驱动版本5+:com.mysql.jdbc.Driver
    forName("com.mysql.cj.jdbc.Driver") ;
} catch (ClassNotFoundException e) {
    e. printStackTrace();
}

这里以MySQL为例,com.mysql.jdbc.Driver是MySQL的驱动类名称。

2.获取连接

注册驱动后,下一步是使用DriverManager获取数据库连接。

String url = "jdbc:mysql://localhost:3306/数据库名?useSSL=false" ;
String username = "用户名" ;
String password = "密码" ;
try{
    Connection conn = DriverManager.getConnection (url, username, password) ;
} catch (SQLException e){
    e. printStackTrace();
}

网址是数据库的URL,其中包含数据库的地址、端口号和数据库名。用户名密码分别是数据库登录的用户名和密码。

3.创建发送SQL语句的对象

有了数据库连接后,需要创建一个用于发送SQL语句的对象。

try (Connection conn = DriverManager.getConnection ( url ,username,password) ) {​   
    Statement stmt = conn.createStatement() ;
} catch (SQLException e){
    e.printStackTrace();
}

Statement对象用于执行静态SQL语句并返回其生成的结果。

4.发送SQL语句,获取返回结果

通过Statement对象发送SQL语句结果,并接收查询。

String sql = "SELECT * FROM 表名" ;
try (Connection conn = DriverManager.getConnection (url ,username,password) ;​  
     Statement stmt = conn.createStatement()){
    ResultSet rs = stmt.executeQuery(sql) ;
    // 处理结果集
} catch (SQLException e){
    e.printStackTrace();
}

5.结果集解析

获取到结果集后,可以搜索结果集获取数据。

try (Connection conn = DriverManager.getConnection (url ,username,password) ;​  
     Statement stmt = conn.createStatement( ) ;
     ResultSet rs = stmt.executeQuery(sql)){
    while (rs.next()){
        // 通过列名或列索引获取数据
        String data = rs.getString("列名");
        // 处理数据
    }
} catch (SQLException e) {
    e.printStackTrace();
}

6. 资源关闭

最后,确保打开的数据库资源被关闭,避免内存泄漏。

try (Connection conn = DriverManager.getConnection (url ,username,password) ;​  
     Statement stmt = conn.createStatement();
     ResultSet rs = stmt.executeQuery(sql)){
    // 使用资源
    // 手动关闭
    //rs.close();
    //stmt.close();
    //conn.close()
} catch ( SQLException e ) {
     e.printStackTrace();
}
// 自动关闭资源,因为使用了try-with-resources语句

使用try-with-resources语句可以自动关闭资源,这是Java 7及以上版本提供的功能,可以自动管理资源的关闭。

statement接口常用方法

以下是 JDBC 中 Statement 接口常用的方法及其功能的详细解释:

方法描述
execute(String sql)在数据库中执行给定的 SQL 语句,可以是任何类型的 SQL 语句(例如,SELECT、INSERT、UPDATE、DELETE),返回一个 boolean 值,指示第一个结果是一个 ResultSet 对象还是更新计数或没有结果。
executeQuery(String sql)在数据库中执行给定的 SELECT 语句,返回一个 ResultSet 对象,它包含满足查询条件的结果集。
executeUpdate(String sql)在数据库中执行给定的 INSERT、UPDATE 或 DELETE 语句,或者是 SQL 数据定义语言(DDL)语句,例如 CREATE TABLE、ALTER TABLE、DROP TABLE 等。返回一个整数,表示受影响的行数。
addBatch(String sql)将 SQL 语句添加到批处理中,以便一次性执行多个 SQL 语句。
clearBatch()清除当前的批处理命令列表。
executeBatch()执行当前的批处理中的所有 SQL 语句。
close()关闭该 Statement 对象。
getResultSet()获取当前结果集(如果有)。
getUpdateCount()获取受上一条 SQL 语句影响的行数。
getMoreResults()将当前结果集关闭,并将游标移动到下一个结果集(如果有)。
getGeneratedKeys()获取由数据库自动生成的键,如果上一条 SQL 语句执行的是插入语句,并且指定了自动生成键的字段,则返回包含生成键的 ResultSet 对象。
setFetchSize(int rows)设置获取的行数。
setMaxRows(int max)设置最大的结果集行数限制。
setQueryTimeout(int seconds)设置查询的超时时间(以秒为单位)。
getFetchSize()获取获取的行数。
getMaxRows()获取结果集的最大行数限制。
getQueryTimeout()获取查询的超时时间(以秒为单位)。
1
打赏

—— 评论区 ——

昵称
邮箱
网址
取消
人生倒计时
舔狗日记