最近头好疼啊,眼睛也好痛! 之前学习的东西,就直接给忘了,好烦啊 ! 好了,今天来记录一下今天遇到的一个问题!

今天,在写一个JDBC的工具类,第一步,获取连接的时候就出现了问题,一直都出现了问题,具体代码如下:

package com.hardstudy.utils;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class DBUtils {
    public static Connection getConnection(){
        Properties prop = null;
        Connection conn = null;
        try {
            prop = new Properties();
            prop.load(DBUtils.class.getClassLoader().getResourceAsStream("jdbc.properties"));
            String url = prop.getProperty("url");
            String user = prop.getProperty("user");
            String password = prop.getProperty("password");
            System.out.println(url + "\n" + user + "\n" + password);
            conn = DriverManager.getConnection(url, user, password);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return conn;
    }
}

这是我加入的jar文件:
这里写图片描述

这是我在src(classpath下创建的一个properties配置文件):

url=jdbc:mysql://localhost:3306/shop_01
user=root
password=123

这是我的测试类:

package com.hardstudy.test;

import java.sql.Connection;

import org.junit.Test;

import com.hardstudy.utils.DBUtils;

public class TestJDBC {
    @Test
    public void test01(){
        Connection conn = DBUtils.getConnection();
        if (conn != null) {
            System.out.println(conn);
        }
        else{
            System.out.println("it's null!!!");
        }
    }
}

这是我的错误代码:

java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/shop_01

现在问题就出来了:没有发现合适的Driver对象!!
当显示的在代码中加入这段代码时,就可以正常的获取到Connection对象了:Class.forName("com.mysql.jdbc.Driver");
看运行结果:这里写图片描述
为什么,我使用了DriverManger的getConnection()获取Connection对象,还需要声明Class.forName(“com.mysql.jdbc.Driver”)对象。

这里写图片描述

最后的解决方法,将之前的jar包换成最新的,不使用Class.forName()也可以正常加载!!!

为什么可以不用使用Class.forName()获取连接?

答:jdbc4已经不需要显式的调用Class.forName了,在jdbc4中,调用getConnection的时候DriverManager会自动去加载合适的驱动。

相关链接:
0.详细解释
1.获取连接的方法
2.JDBC教程

Logo

更多推荐