gpt4 book ai didi

java - DriverManager 没有合适的驱动程序 mysql

转载 作者:行者123 更新时间:2023-11-29 02:29:00 25 4
gpt4 key购买 nike

我们在找出与 DriverManager 建立连接时收到错误消息的原因时遇到了一些麻烦。

这是我们的代码

package Databank;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.List;

public class Connectie_Databank
{
//Eigenschappen databank
private String connectieString = "";
private Connection connectie = null;
private PreparedStatement prepStatement = null;
private Statement statement = null;
private ResultSet inhoudQuery = null;

//Inloggegevens PhpMyAdmin
private String gebruikersnaam, wachtwoord;

//Constructor met standaardinstellingen
public Connectie_Databank()
{
this.connectieString = "jdbc:mysql://localhost/groep2_festivals";
this.gebruikersnaam = "root";
this.wachtwoord = "";
}

//Constructor met nieuwe data
public Connectie_Databank(String connectionString, String gebruikersnaam, String wachtwoord)
{
this.connectieString = connectionString;
this.gebruikersnaam = gebruikersnaam;
this.wachtwoord = wachtwoord;
}

/**
* Deze methode zorgt ervoor dat er verbinding gemaakt wordt me de databank
*/
public void maakConnectie()
{
try
{
connectie = DriverManager.getConnection(connectieString, gebruikersnaam, wachtwoord);
}
catch(Exception e)
{
System.err.println("FOUTMELDING: " + e.getMessage());
}
}

public void voerQueryUit(String query, List<String> parameters)
{
try
{
if(parameters.size() > 0)
{
//Reden preparedStatement: geen SQL-Injectie!
prepStatement = connectie.prepareStatement(query);

//Lijst met parameters uitlezen om de preparedStatement op te vullen
for(int i=1; i<=parameters.size(); i++)
{
prepStatement.setString(i, parameters.get(i-1));
}
inhoudQuery = prepStatement.executeQuery();
}
else
{
statement = connectie.createStatement();
inhoudQuery = statement.executeQuery(query);
}
}
catch(Exception e)
{}
}

public ResultSet haalResultSetOp()
{
return inhoudQuery;
}

public void sluitConnectie()
{
//ConnectieString leegmaken en alle objecten die te maken hebben met de connectie sluiten
try
{
connectieString = "";
if(connectie != null)
{
connectie.close();
}
if(prepStatement != null)
{
prepStatement.close();
}
if(inhoudQuery != null)
{
inhoudQuery.close();
}
}
catch(Exception e)
{}
}
}

我们从 JSP 页面中这样调用我们的连接类:

    <%
Connectie_Databank connectie;
ResultSet res;
connectie = new Connectie_Databank();

connectie.maakConnectie ();

List<String> lijstParams = new ArrayList<String>();
connectie.voerQueryUit ("SELECT * FROM festivals", lijstParams);

res = connectie.haalResultSetOp();
%>

这发生在我们页面的头部。第一次加载页面时,我们得到一个错误“没有找到适合 jdbc mysql 的驱动程序”,但是当我们刷新时,我们查询的信息显示正确。

因此,我们只在第一次加载时收到一个错误消息,之后就没有错误发生,一切正常。

谁能帮助我们?

最佳答案

连接前首先需要加载JDBC驱动

// Notice, do not import com.mysql.jdbc.*
// or you will have problems!

//Load Driver
try {
// The newInstance() call is a work around for some
// broken Java implementations
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (Exception ex) {
// handle the error
}

con=DriverManager.getConnection(connectieString);
System.out.println ("Database connection established");

确保在运行应用程序时类路径中有 mysql-connector-java-5.x.x-bin.jar。

关于java - DriverManager 没有合适的驱动程序 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15852195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com