JDBC

JDBC(Java Database Connectify)也就是 java 数据库连接,处理的是 java 程序和数据库之间的交互。JDBC 不是一种实现,而是一种规范,使得 java 在于数据库交互的时候,屏蔽了数据库之间的差异性,从而使 java 应用程序与各种数据都能进行连接。

java 程序和数据库连接包括以下几个步骤:

    1. 加在数据库驱动

    2. 与数据库进行连接,返回 Connection 对象

    3. 利用 Connection 对象创建 Statement 对象。

Statement 可以理解为数据库查询语句的声明,用来执行 sql 语句。

这次 JDBC 实践采用 MVC 三层模型,即 M(Model)模型层V(View)视图层C(Control)控制层 三层分开,各自独立处理相应的业务。

数据库层

 

要为 MVC 三层模型提供数据存取的服务,就需要最底层的 DB层 来处理对数据库中数据的操作以及向方便向高层提供数据。为此,分别写一个处理数据库连接的 DBUtil 类和向高层提供数据存取操作 API 的 DAO 类。

 package com.learnJDBC.db;

 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.SQLException;
 import java.sql.Statement;

 /**
 * 数据库的工具类,主要是处理数据库连接,并提供返回连接的 Connection 对象的方法。
 * @author Li
 *
 */

public class DBUtil {
    private static final String URL="jdbc:mysql://127.0.0.1:3306/godness_test?serverTimezone=GMT";
    private static final String USER="root";
    private static final String PASSWORD="123456";

    private static Connection connect = null;

    static {    //静态块在类加载的时候就执行,只执行一次,执行顺序先于构造方法。
        try {
            Class.forName("com.mysql.cj.jdbc.Driver"); //加在 mysql 驱动
            connect = DriverManager.getConnection(URL,USER,PASSWORD);//通过 url 连接数据库
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }   
    }

    public static Connection getConnec() {   //静态方法可以直接通过类名调用
        return connect;
    }   
}

通过 Class.ForName() 反射加载 mysql 数据库驱动,其他的数据库比如 oracle 数据库就传入 oracle 数据库的驱动,然后传入用户名,密码以及数据库的 url 通过 DriverManager 的方法和数据库进行连接。返回连接的 Connection 对象,最后通过静态方法将连接返回。

 





相关推荐

评论

  1. #1

    dUoxKpta 2019-09-06 01:15:02
    dUoxKpta

  2. #2

    WEmXeAbt 2019-09-05 22:19:18
    WEmXeAbt

  3. #3

    zuLdJdBo 2019-09-05 19:41:58
    zuLdJdBo