Java的JDBC编程

1.Java的数据库编程:JDBC

       JDBC ,即 Java Database Connectivity java 数据库连接。是一种用于执行 SQL 语句的 Java API ,它是 Java中的数据库连接规范。这个 API java.sql.*,javax.sql.* 包中的一些类和接口组成,它为 Java 开发人员操作数据库提供了一个标准的API ,可以为多种关系数据库提供统一访问。

2. JDBC工作原理

      JDBC 为多种关系数据库提供了统一访问方式,作为特定厂商数据库访问 API 的一种高级抽象,它主要包 含一些通用的接口类。
      JDBC 访问数据库层次结构 :
Java的JDBC编程_第1张图片
    JDBC优势:
Java 语言访问数据库操作完全面向抽象接口编程
开发数据库应用不用限定在特定数据库厂商的 API
程序的可移植性大大增强

 3. JDBC使用

JDBC的一般步骤:

  1. 引入4JDBC库文件: 首先需要将4JDBC的库文件(jar包)引入到你的项目中,可以通过Maven、Gradle等构建工具进行引入,也可以直接下载jar包手动引入。

  2. 配置数据源: 在你的应用程序中配置数据库连接池,包括数据库的连接信息、连接池大小、超时设置等。这通常可以通过在配置文件中进行配置,或者通过代码进行动态配置。

  3. 获取连接: 当应用程序需要与数据库交互时,通过4JDBC从连接池中获取数据库连接。这样可以避免频繁地创建和销毁数据库连接,提高了效率。

  4. 使用连接进行数据库操作: 获取到数据库连接后,就可以像普通的数据库连接一样使用它进行数据库的增删改查操作。

  5. 释放连接: 在使用完数据库连接后,需要将连接归还到连接池中,以便其他的应用程序可以继续重复使用。

 3.1 JDBC开发案例

     准备数据库驱动包,并添加到项目的依赖中:
     在项目中创建文件夹 lib ,并将依赖包 mysql-connector-java-5.1.47.jar 复制到 lib 中。再配置该 jar 包到本项目的依赖中:右键点击项目Open Module Settings ,在 Modules 中,点击项目,配置 Dependencies,点击 + JARS or Directories ,将该 lib 文件夹配置进依赖中,表示该文件夹下的 jar包都引入作为依赖。
建立数据库连接
// 加载 JDBC 驱动程序:反射,这样调用初始化 com.mysql.jdbc.Driver 类,即将该类加载到 JVM 方法
区,并执行该类的静态方法块、静态属性。
Class . forName ( "com.mysql.jdbc.Driver" );
// 创建数据库连接
Connection connection =
DriverManager . getConnection ( "jdbc:mysql://localhost:3306/test?
user=root&password=root&useUnicode=true&characterEncoding=UTF-8" )
//MySQL 数据连接的 URL 参数格式如下:
jdbc : mysql : // 服务器地址 : 端口 / 数据库名 ? 参数名 = 参数值

 创建操作命令(Statement):

Statement statement = connection . createStatement ();

执行SQL语句 

    ResultSet resultSet = statement . executeQuery (
    "select id, sn, name, qq_mail, classes_id from student" );

处理结果集 

while(resultSet.next()){
            int id = resultSet . getInt ( "id" );
            String sn = resultSet . getString ( "sn" );
            String name = resultSet . getString ( "name" );
            int classesId = resultSet . getInt ( "classes_id" );
            System . out . println ( String . format ( "Student: id=%d, sn=%s, name=%s,
classesId=%s" , id , sn , name , classesId ));

释放资源(关闭结果集,命令,连接)  

// 关闭结果集
if ( resultSet != null ) {
    try {
        resultSet . close ();
  } catch ( SQLException e ) {
        e . printStackTrace ();
  }
}
// 关闭命令
if ( statement != null ) {
    try {
        statement . close ();
  } catch ( SQLException e ) {
        e . printStackTrace ();
  }
}
// 关闭连接命令
if ( connection != null ) {
    try {
        connection . close ();
  } catch ( SQLException e ) {
        e . printStackTrace ();
  }
}

4.JDBC常用接口和类 

4.1 JDBC API

        在 Java JDBC 编程中对数据库的操作均使用 JDK 自带的 API 统一处理,通常与特定数据库的驱动类是完全 解耦的。所以掌握Java JDBC API (位于 java.sql 包下) 即可掌握 Java 数据库编程。

4.2 数据库连接Connection 

Connection 接口实现类由数据库提供,获取 Connection 对象通常有两种方式:
一种是通过 DriverManager (驱动管理类)的静态方法获取:
// 加载 JDBC 驱动程序
Class . forName ( "com.mysql.jdbc.Driver" );
// 创建数据库连接
Connection connection = DriverManager . getConnection ( url );
一种是通过 DataSource (数据源)对象获取。 实际应用中会使用 DataSource 对象。
DataSource ds = new MysqlDataSource ();
(( MysqlDataSource ) ds ). setUrl ( "jdbc:mysql://localhost:3306/test" );
(( MysqlDataSource ) ds ). setUser ( "root" );
(( MysqlDataSource ) ds ). setPassword ( "root" );
Connection connection = ds . getConnection ();
以上两种方式的区别是:
1. DriverManager 类来获取的 Connection 连接,是无法重复利用的,每次使用完以后释放资源
时,通过 connection.close() 都是关闭物理连接。
2. DataSource 提供连接池的支持。连接池在初始化时将创建一定数量的数据库连接,这些连接
是可以复用的,每次使用完数据库连接,释放资源调用 connection.close() 都是将
Conncetion 连接对象回收。

 

4.3 Statement对象

Statement 对象主要是将 SQL 语句发送到数据库中。 JDBC API 中主要提供了三种 Statement 对象。

Java的JDBC编程_第2张图片 

你可能感兴趣的:(java,数据库,java,数据库,开发语言)