【JavaSE】JDBC

1、简介

        JDBC是Java操作数据库的唯一方式,在市场上数据库产品非常多,JDK不可能为每一种产品都提供一种连接方式。

        但JDK提供了一套标准化的接口--JDBC。数据库厂商想让JDK连接自家数据库就要提供符合该接口的连接驱动。

        这些连接驱动JDK本身并不拥有,而是有数据库厂商提供。表现形式就是JAR包。

实质:

        JDBC的实质是JDK提供的一系列标准化的接口,而我们学习的正是这些接口。这些接口统一规范了数据库如何去连接数据库。而数据库厂商提供的连接驱动的实质就是实现JDBC接口的实现类。表现形式就是Jar包。

2、JDBC的使用步骤

        

public class Test01 {

    public static void main(String[] args) {

        String url = "jdbc:mysql://localhost:3306/data_test?useUnicode=true&&characterEncoding=utf8";

        String username = "root";

        String password = "root";

        Connection connection = null;

        Statement statement = null;

        try {
            //1、注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //2、获取连接对象
            connection = DriverManager.getConnection(url, username, password);
            //3、写SQL语句
            String sql = "insert into t_user(id,name,age) values (1003,'AWM','16')";
            //4、获取执行对象
            statement = connection.createStatement();
            //5、执行语句
            statement.executeUpdate(sql);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                //6、关闭资源
                if (statement != null){
                    statement.close();
                }
                if (connection != null){
                    connection.close();
                    System.out.println("关闭成功");
                }
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

}

3、JDBC各接口详解

(1)DriverManger

        该类是一个工具类,主要实现的是注册驱动与获取连接对象,通过该类中的静态方法获取数据库的连接对象。

(2)Connection

        连接类,通过该类中的方法可以获取prepareStatement执行SQL语句的对象。

(3)PrepareStatement

        执行SQL语句并对SQL进行预编译,防止SQL注入。

(4)ResultSet

        结果集对象,在执行查询的SQL语句是会返回这样一个结果集对象

4、数据库连接池

        数据库连接池是个容器,负责分配管理数据库的连接。

        允许应用程序使用一个现有的数据库连接,而不需要频繁的创建与销毁连接

        释放超过最大空闲时间的数据库连接,来避免因为没有释放数据库连接而引起的数据库连接遗漏。

                优点:

                        1、资源重用

                        2、避免频繁创建与销毁,提升系统响应效率

                        3、避免数据库连接遗漏

5、数据库连接池实现

        使用连接池来获取连接对象,而不通过DriverManger。

        首先要将使用的数据库连接池导入项目中,然后要自定义配置文件包含类加载的全类名,数据库连接的url,用户名和密码。即是原来DriverManger中需要做的事。

        然后加载配置文件,通过数据库连接工厂类来创建数据库连接池。通过数据库连接池获取数据库的连接对象。

            //准备工作
            //导入数据库连接池Jar包
            //定义配置文件

            //加载配置文件
            Properties prop = new Properties();
            prop.load(Test02.class.getResourceAsStream("druid.properties"));
            //获取连接池对象
            DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
            //差获取连接对象
            connection = dataSource.getConnection();

        配置文件

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/data_test?useSSL=false&useServerPrepStmts=true
username=root
password=root
# 初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
# 最大等待时间
maxWait=3000

你可能感兴趣的:(java,jvm,数据库)