JDBC重复步骤优化1
1.回顾之前,每次进行一次数据库操作
我们都得注册驱动,然后连接,再进行sql操作,返回结果(结果集)
对于注册驱动其实只要做一次就可以了,现在就对它稍微优化下;以及获取连接,关闭都可以优化
2.优化"注册驱动","获取连接"重复步骤
先写一个工具类,名为DBUtil.java的java文件
细节:这里用到了反射 Class.forName(“xxx”),动态加载这个类
调用了方法forName(),参数是传入这个类的路径,而这个类也就是Driver类的路径
它是在我们导入的jar包路径下,如下
对于反射,暂时不理解的话,我们可以先记着可以这么用
总的工具类源码
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.再来进行连接数据库操作
对比之前
4.细节
为什么这样简化了了???
相当于我们定义了一个专门进行注册驱动,数据库连接关闭等基本操作的工具类
方便我们简化不必要的,重复的代码
为什么注册驱动只需要写一次???
因为 Class.forName(“com.mysql.jdbc.Driver”);直接静态初始化器的中已经进行了注册
这样我们就不要注册了,然后再调用我们工具类中写好了的连接方法
同理关闭连接,和进行连接一样,只是把代码写在工具类中,需要的时候调用即可!!!