DriverManager与JDBCUtils

最初,学习的是通过DriverManager来实现数据库的连接。后来又学习了数据库连接池的使用,就很少用这种方法了。故在此记录一下,便于复习。

一般来说,数据库连接分为以下几步:

  1. 准备需要的url、username、password、driver
  2. 加载驱动
  3. 获取连接
  4. 进行操作
  5. 释放连接

DriverManager实现方式(一)

没有配置文件,将所有东西都写在源代码中。

public static void main(String[] args) {
    // 准备需要的url、username、password、driver
    String url = "jdbc:mysql://localhost:3306/bookstore";
    String username = "root";
    String password = "1234";
    String driver = "com.mysql.jdbc.Driver";
    
            String sql = "";
    Connection connection = null;
    Statement statement = null;
    ResultSet resulet = null;

    try {
        // 加载数据库驱动
        Class.forName(driver);
        // 获取connection
        connection = DriverManager.getConnection(url, username, password);
        System.out.println(connection);
        // 获取statement
        statement = connection.createStatement();
        // 执行sql,获取result
        resulet = statement.executeQuery(sql);
        // 释放result
        while (resulet.next()) {
            // 进行操作
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        
        // 释放result
        if (resulet != null) {
            try {
                resulet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        // 释放statement
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        // 释放connection
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}

DriverManager实现方式(二)

将数据库的连接与释放分离出来,构成JDBCUtils类,并拥有配置文件,将数据库的基本信息写在配置文件中。利用JDBCUtils类来完成数据库的连接。

public class JDBCTools {

    public static Connection getConnection() throws Exception {
        Properties properties = new Properties();
        InputStream inStream = JDBCTools.class.getClassLoader()
                .getResourceAsStream("jdbc.properties");
        properties.load(inStream);

        // 1. 准备获取连接的 4 个字符串: user, password, jdbcUrl, driverClass
        String user = properties.getProperty("user");
        String password = properties.getProperty("password");
        String jdbcUrl = properties.getProperty("jdbcUrl");
        String driverClass = properties.getProperty("driverClass");

        // 2. 加载驱动: Class.forName(driverClass)
        Class.forName(driverClass);

        // 3. 调用
        // DriverManager.getConnection(jdbcUrl, user, password)
        // 获取数据库连接
        Connection connection = DriverManager.getConnection(jdbcUrl, user,
                password);
        return connection;
    }

    public static void releaseDB(ResultSet resultSet, Statement statement,
            Connection connection) {

        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();
            }
        }
    }

}

配置文件jdbc.properties

user=root
password=1234
driverClass=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql:///bookstore

你可能感兴趣的:(DriverManager与JDBCUtils)