将Java连接到MySQL - 包不存在

时间:2017-08-16 00:17:38

标签: java mysql jar package

我花了很多时间试图解决这个问题并遵循了许多指示但无济于事。

我正在尝试将我的程序与我的MySQL数据库连接,我已经安装了MySQL驱动程序,或者至少我认为我已经将它添加到类路径中,然后我还将其安装为用户库。

然后当我通过命令行编译时,我收到一个错误: 错误:包com.mysql.jdbc不存在

我甚至已经下载了早期版本的驱动程序jar,但这没有用,我花了8个小时试图计算出来

我的代码:

String[] settings = new String[10];

    try {

        FileReader fr = new FileReader("settingsFile.txt");
        BufferedReader textReader = new BufferedReader(fr);

        for(int i=0; i <=9; i++){
                settings[i] = textReader.readLine();
            }

        textReader.close();

    } catch (IOException e) {
        JOptionPane.showMessageDialog(null, "Unable to connect to database.\nSettings file Not Found");
    }

    String host = settings[2];
    String uName = settings[3];
    String uPass = settings[4];

    try {
        String driver = "com.mysql.jdbc.Driver";
        Class.forName(driver).newInstance();
        Connection con = DriverManager.getConnection(host, uName, uPass);

        JOptionPane.showMessageDialog(null, "Connection to database established");
    }
    catch ( SQLException | ClassNotFoundException | IllegalAccessException | InstantiationException err ) {
        JOptionPane.showMessageDialog(null, err.getMessage( ) + "\n\nDid not connect.");
    }

}

请帮忙,我想我对此感到灰暗。

2 个答案:

答案 0 :(得分:-1)

如果您有

,则只能出现此错误
import com.mysql.jdbc.*;

或来自该软件包的一个或多个特定导入。

解决方案:将其删除。你不需要它。您只应从java.sql导入。

注意:自2007年以来,您还不需要Class.forName(driver).newInstance();行。

答案 1 :(得分:-2)

首先要做的事情: 您需要检查MySQL的驱动程序是作为库还是作为JAR添加, 你想把它作为一个罐子。

您至少需要导入此包:

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

你不需要:

  String driver = "com.mysql.jdbc.Driver";
        Class.forName(driver).newInstance();

你可以这样做:

Class.forName("com.mysql.jdbc.Driver");

同样在你的代码中我不确定你是否在连接之前向数据库发出请求,你要做的第一件事就是创建连接和连接,你不能在此之前提出请求,否则你会收到错误:

public static Connection connection= null;

    public static void openConnection(){

        try {
            Class.forName("com.mysql.jdbc.Driver"); //you call the mysql driver so it gets loaded
            connection= DriverManager.getConnection(URL_CONEXION, USER, PASSWORD); //you actually connect to the DataBase
            if (connection!=null) {
                JOptionPane.showMessageDialog(null,"Connection to:  "+ DATA_BASE + " Successful","Attention",JOptionPane.INFORMATION_MESSAGE);
                //message to show that you are actually connected
            }
        }catch(ClassNotFoundException | SQLException ex){                
               System.out.println(ex.getMessage()); // You print in console the error
        }

    }