JDBC

JDBC

Java Data Base Connectivity

java语言操作数据库

JDBC的本质,就是官方定义的一套操作所有关系型数据库的规则,就是接口,各个数据库厂商去实现这套接口,提供数据库驱动jar包,我们使用这套接口,就可以执行代码驱动的实现类

包讲解

com.test.domain-实体类-getset

.dao-核心代码

.util-连接数据库

使用步骤

  1. 导入驱动jar包
    1. 复制mysql的jar包到项目的libs文件夹下
    2. 右键add as Library
  2. 注册驱动
  3. 获取数据库连接对象 Connection
  4. 定义sql语句
  5. 获取执行sql语句的对象 Statement
  6. 执行sql,接受返回结果
  7. 释放资源
Class.forName("com.mysql.jdbc.Driver");
Statement statement = DriverManager.getConnection("jdbc:mysql://localhost:3306/java2303","root","root").createStatement();
String sql = "select * from student";
ResultSet resultSet = statement.executeQuery(sql);
while (resultSet.next()){
    System.out.println(resultSet.getString("stuId")+"   "
                    +resultSet.getString(2)+"   "
                    +resultSet.getString(3)+"   "
                    + resultSet.getString(4)+"   "
    );
}
statement.close();
resultSet.close();

DriverManager对象

驱动管理对象

  • 注册驱动:告诉java程序该使用哪个数据区驱动jar
  • 获取数据库链接
    • static Connection getConnection(String url,String user,String password)
      • url:指定链接的路径
        • jdbc:mysql://ip地址(域名):端口号/数据库名
      • user:数据库y用户名
      • password:数据库密码

Connection对象

数据库连接对象

  • 获取执行sql的对象
    • Statement createStatement();
    • prepareStatement prepareStatement(String sql)
  • 管理事务
    • 开启事务setAutoCommit(boolean b):调用该方法设置参数为false,即可开启事务
    • 提交事务commit()
    • 回滚事务rollback()

Statement对象

执行sql语句

int executeUpdate(String sql):执行DML语句,DDL语句,返回值为影响的行数,可以通过返回值判断语句是否执行成功
ResultSet executeQuery(String sql):执行DQL语句

ResultSet对象

结果集对象,封装了查询的结果

boolean next():游标向下移动一行,判断当前行是否是最后一行(是否有数据),如果是,则返回false,如果不是返回true
getXXX(参数):通过数据库表中的游标或者列名来获取数据

Druid连接池

连接池中保存了一些数据库连接,这些连接是可以重复使用的

原理

  • 启动连接池,连接池就会初始化一些连接
  • 当用户需要使用数据库连接,直接从连接池中取出
  • 当用户使用完连接,会将连接重新放回连接池中

好处

连接池中会保存一些连接,这些连接可以重复使用,降低数据资源的消耗

常用的连接池实现组件

  • 阿里巴巴-德鲁伊Druid连接池:Druid是阿里巴巴开源平台上的一个项目
  • C3P0是一个开源的连接池,目前使用它的开源项目有Hibernate,Spring等。
  • DBCP(DataBase Connection Pool)数据库连接池,是Tomcat使用的连接池组件。

Druid常用的配置参数

方法名 说明
initialSize 刚启动连接池时,连接池中包含连接的数量
maxActive 连接池中最多可以放多少个连接
maxWait 获取连接时最大等待时间,单位毫秒

druid.properties文件内容

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/day17
username=root
password=root
initialSize=5
maxActive=10
maxWait=3000
package com.qiankun.util;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class DruidUtils {
    private static DataSource dataSource;

    static {
        try {
            Properties pro = new Properties();
            pro.load(DruidUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
            dataSource = DruidDataSourceFactory.createDataSource(pro);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    //获取连接
    public  static Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }
    //释放资源
    public static  void close(Statement statement, Connection connection){
        if (statement!=null) {
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (connection!=null) {
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void close(Statement statement, Connection connection, ResultSet resultSet){
        close(statement, connection);
        if (resultSet!=null) {
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    public static DataSource getDataSource(){
        return  dataSource;
    }
}

使用步骤

  1. 导入druid-1.0.0.jar的jar包
  2. 复制druid.properties文件到src下,并设置对应参数
  3. 加载properties文件的内容到Properties对象中
  4. 创建Druid连接池,使用配置文件中的参数
  5. 从Druid连接池中取出连接
  6. 执行SQL语句
  7. 关闭资源
posted @ 2023-05-01 15:21  YxinHaaa  阅读(2)  评论(0编辑  收藏  举报