JDBC初级优化1

JDBC重复步骤优化1

1.回顾之前,每次进行一次数据库操作

我们都得注册驱动,然后连接,再进行sql操作,返回结果(结果集)
对于注册驱动其实只要做一次就可以了,现在就对它稍微优化下;以及获取连接,关闭都可以优化

2.优化"注册驱动","获取连接"重复步骤

先写一个工具类,名为DBUtil.java的java文件
JDBC初级优化1_第1张图片
JDBC初级优化1_第2张图片

细节:这里用到了反射 Class.forName(“xxx”),动态加载这个类
调用了方法forName(),参数是传入这个类的路径,而这个类也就是Driver类的路径
它是在我们导入的jar包路径下,如下
JDBC初级优化1_第3张图片
对于反射,暂时不理解的话,我们可以先记着可以这么用

总的工具类源码

package util;

import java.sql.Connection;
import java.sql.DriverManager;

/**
 * JDBC的工具类 V1版本
 * @author wh
 */
public class JDBCUtil {
    /**
     * 连接数据库的字符串
     */
    static String url = "jdbc:mysql://localhost:3306/test";
    //                  jdbc:数据库名://本地网址:端口号/数据库名
    /**用户名*/
    static String user = "root";
    /**密码*/
    static String psd = "";

    /**
     * 注册驱动只注册一次,写成静态代码块
     *
     */
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 获取连接的方法
     *
     */
    public static Connection getConnection() {
        try {
            Connection connection = DriverManager.getConnection(url, user, psd);
            return connection;
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }
}

3.再来进行连接数据库操作

JDBC初级优化1_第4张图片
对比之前
JDBC初级优化1_第5张图片

4.细节

为什么这样简化了了???
相当于我们定义了一个专门进行注册驱动,数据库连接关闭等基本操作的工具类
方便我们简化不必要的,重复的代码
为什么注册驱动只需要写一次???
因为 Class.forName(“com.mysql.jdbc.Driver”);直接静态初始化器的中已经进行了注册
这样我们就不要注册了,然后再调用我们工具类中写好了的连接方法
同理关闭连接,和进行连接一样,只是把代码写在工具类中,需要的时候调用即可!!!

你可能感兴趣的:(javaWeb基础,JDBC)