JDBC-API

JDBC(Java Database Connectivity)是Java语言中用来连接数据库的一种API(应用程序接口)。JDBC为访问不同的数据库提供了一种统一的方式,使得Java程序可以方便地与各种数据库进行交互。通过使用JDBC,Java程序可以执行SQL语句,实现数据的查询、更新、插入和删除等操作。

JDBC的流程

  1. 创建工程
    • 首先,需要在开发环境中创建一个新的工程或项目,以便组织和管理即将编写的代码。
  2. 导入驱动jar包
    • 将MySQL的JDBC(Java Database Connectivity)驱动程序jar包导入到项目中。这个jar包是Java程序与MySQL数据库进行通信所必需的。
  3. 注册驱动
    • 在代码中,通过Class.forName("com.mysql.jdbc.Driver")方法显式地加载并注册MySQL JDBC驱动程序。注意,从JDBC 4.0开始,这一步通常是可选的,因为JDBC驱动可以自动被DriverManager发现。
  4. 获取连接
    • 使用DriverManager.getConnection(String url, String user, String password)方法建立与MySQL数据库的连接。这里需要提供数据库的URL、用户名和密码。
  5. 定义SQL语句
    • 根据需要执行的数据库操作(如查询、更新、删除等),定义一个SQL语句,并将其存储在字符串变量中。
  6. 执行SQL更新语句
    • 使用连接对象(Connection)创建Statement对象或PreparedStatement对象,并调用其executeUpdate(String sql)方法执行SQL更新语句(如INSERT、UPDATE、DELETE)。对于查询操作,应使用executeQuery(String sql)方法。
  7. 处理结果
    • 根据SQL语句的类型(更新或查询),处理执行结果。对于更新操作,通常打印出受影响的行数;对于查询操作,则需要处理返回的ResultSet对象,以获取查询结果。
public class JDBCDemo01 {
    public static void main(String[] args) throws Exception{
        //1.导入jar包
        //2.注册驱动
        Class.forName("com.mysql.jdbc.Driver");

        //3.获取连接 (连接的数据库名是db2,第二个第三个参数是连接数据库的用户名密码)
        Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db2","root","lichee");

        //4.获取执行者对象 (statement:表现,声明,跟程序意思不匹配)
        Statement stat = conn.createStatement();

        //5.执行sql语句,并且接收结果
        String sql = "SELECT * FROM user";
        ResultSet rs = stat.executeQuery(sql); //execute执行,query:查询,resultset:结果集

        //6.处理结果
        while(rs.next()) {
            System.out.println(rs.getInt("id") + "\t" + rs.getString("name"));
        }

        //7.释放资源
        conn.close();
        stat.close();
        conn.close();
    }
} 

JDBC API详解

  1. DriverManager:用于管理数据库驱动程序的加载和数据库连接的建立。它提供了一系列静态方法来获取数据库连接、注册驱动程序等。

  2. Driver:这是一个接口,由数据库厂商提供具体的实现。它封装了与数据库通信的细节,使得Java应用程序无需直接操作底层的网络通信。

  3. Connection:代表与数据库的连接。通过连接对象,可以执行SQL语句、管理事务等。

  4. Statement:用于执行静态SQL语句并返回执行结果。它是执行SQL语句的基础接口,但执行效率较低,且容易遭受SQL注入攻击。

  5. PreparedStatement:继承自Statement接口,用于执行预编译的SQL语句。它可以有效防止SQL注入攻击,并且执行效率更高。

  6. CallableStatement:继承自PreparedStatement接口,用于执行数据库中的存储过程。

  7. ResultSet:用于封装SQL查询的结果集。它提供了一系列方法来遍历查询结果,并获取每一行数据的具体值。

数据库连接池

数据库连接池(Connection Pooling)是一个容器,负责分配、管理和释放数据库连接(Connection)。它允许应用程序重复使用一个现有的数据库连接,而不是每次都重新建立新的连接。这项技术通过减少连接的建立和销毁次数,显著提高了数据库操作的性能。

  1. 资源重用:通过复用数据库连接,减少了创建和销毁连接的开销,提高了资源利用率。
  2. 提升系统响应速度:由于减少了连接建立的时间,系统能够更快地响应数据库请求。
  3. 避免数据库连接遗漏:通过及时释放空闲时间超过最大空闲时间的数据库连接,避免了连接遗漏的问题。

    配置参数

  • 最大连接数:连接池能够容纳的最大数据库连接数。
  • 最小连接数:连接池一直保持的最小数据库连接数。
  • 初始连接数:连接池启动时创建的初始数据库连接数。
  • 最大空闲连接数:没有请求时,连接池中保留的最大空闲连接数。
  • 最小空闲连接数:当连接数小于此值时,连接池需要创建新的连接来补充。
  • 连接超时时间:从连接池中获取连接时,如果所有连接都被占用,等待连接可用的最长时间。

运行原理

  1. 程序初始化时创建连接池:在应用程序启动时,根据配置创建一定数量的数据库连接,并放入连接池中。
  2. 使用时向连接池申请可用连接:当应用程序需要访问数据库时,向连接池申请一个可用的数据库连接。
  3. 使用完毕,将连接返还给连接池:数据库操作完成后,将连接返还给连接池,以供后续请求使用。
  4. 程序退出时,断开所有连接并释放资源:当应用程序退出时,断开连接池中的所有连接,并释放相关资源。
# 基本数据库连接配置  
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver  
spring.datasource.url=jdbc:mysql://localhost:3306/yourdatabase?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC  
spring.datasource.username=yourusername  
spring.datasource.password=yourpassword  
  
# Druid连接池配置  
# 初始化时建立物理连接的个数  
spring.datasource.druid.initial-size=5  
# 最小空闲连接数  
spring.datasource.druid.min-idle=2  
# 最大活跃连接数  
spring.datasource.druid.max-active=10  
# 最大空闲连接数  
spring.datasource.druid.max-idle=5  
# 获取连接时最大等待时间,单位毫秒  
spring.datasource.druid.max-wait=10000  

Druid使用步骤

1. 导入jar包

首先,需要将Druid的jar包添加到项目的依赖中。通常,这个jar包会命名为类似druid-1.1.12.jar(版本号可能会根据您使用的版本而有所不同)。您可以通过Maven、Gradle等构建工具来管理依赖,或者直接将jar包添加到项目的类路径中。

具体步骤

  • 打开您的IDE(如Eclipse, IntelliJ IDEA等)。
  • 找到项目的依赖管理界面(如Maven的pom.xml文件或Gradle的build.gradle文件)。
  • 添加Druid的依赖项(如果是使用Maven或Gradle)。
  • 或者,将下载的druid-x.x.x.jar文件直接放入项目的lib目录下,并确保在项目的构建路径中包含了该lib目录。
2. 定义配置文件

接下来,需要定义一个配置文件来设置Druid连接池的参数。这些参数包括但不限于数据库的连接信息(如URL、用户名、密码)、连接池的大小(最大活跃连接数、最小空闲连接数等)、连接的初始化大小等。

具体步骤

4. 获取数据库连接池对象

使用上一步加载的配置信息,创建Druid数据库连接池对象。

具体步骤

最后,通过连接池对象来获取数据库连接。

  • 在项目的资源目录(如src/main/resources)下创建一个配置文件,如druid.properties
  • 在该文件中编写配置信息,如:
    url=jdbc:mysql://localhost:3306/yourdatabase  
    username=yourusername  
    password=yourpassword  
    initialSize=5  
    maxActive=10  
    minIdle=2  
    maxWait=10000
    
    3. 加载配置文件

    在应用程序中,需要加载并解析这个配置文件,以便后续创建数据库连接池对象时可以使用其中的配置信息。

  • 具体步骤

  • 使用Java的Properties类或Spring框架的配置文件加载机制来加载druid.properties文件。
  • 将加载的配置信息传递给Druid的连接池工厂类(如DruidDataSourceFactory),以便根据配置信息创建连接池对象。
  • 调用Druid提供的API(可能是通过DruidDataSourceFactory.createDataSource(properties)等方法)来创建DruidDataSource对象。
  • 这个DruidDataSource对象就是您需要的数据库连接池对象。
5. 获取连接

最后,通过连接池对象来获取数据库连接。

具体步骤

  • 调用DruidDataSource对象的getConnection()方法来获取数据库连接。
  • 使用这个连接执行SQL语句、查询数据库等操作。
  • 使用完毕后,确保关闭连接(虽然在使用连接池时,实际关闭操作可能只是将连接归还给连接池)。

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值