Je suis novice en matière de JDBC et j'essaie d'établir une connexion avec une base de données MySQL. J'utilise le pilote Connector/J, mais je ne trouve pas la chaîne de connexion JDBC pour ma base de données MySQL. Class.forName()
méthode.
Réponses
Trop de publicités?Comme la réponse semble avoir déjà été donnée, il n'y a pas grand chose à ajouter mais je voudrais ajouter une chose aux réponses existantes. Voici la façon de charger la classe du pilote JDBC pour mysql.
com.mysql.jdbc.Driver
Mais ceci est maintenant déprécié. La nouvelle classe de pilote est maintenant
com.mysql.cj.jdbc.Driver
De plus, le pilote est automatiquement enregistré via le SPI et le chargement manuel de la classe du pilote est généralement inutile.
mise à jour pour mySQL 8 :
String jdbcUrl="jdbc:mysql://localhost:3306/youdatabase?useSSL=false&serverTimezone=UTC" ;
Vérifiez si vos configurations Jdbc et URL sont correctes ou non en utilisant l'extrait de code suivant.
import java.sql.Connection;
import java.sql.DriverManager;
public class TestJdbc {
public static void main(String[] args) {
//db name:testdb_version001
//useSSL=false (get rid of MySQL SSL warnings)
String jdbcUrl = "jdbc:mysql://localhost:3306/testdb_version001?useSSL=false";
String username="testdb";
String password ="testdb";
try{
System.out.println("Connecting to database :" +jdbcUrl);
Connection myConn =
DriverManager.getConnection(jdbcUrl,username,password);
System.out.println("Connection Successful...!");
}catch (Exception e){
e.printStackTrace();
//e.printStackTrace();
}
}
}
La méthode Class.forName()
est utilisé pour enregistrer le pilote JDBC. Une chaîne de connexion est utilisée pour récupérer la connexion à la base de données.
La façon de récupérer la connexion à la base de données est indiquée ci-dessous. Idéalement, vous ne souhaitez pas créer plusieurs connexions à la base de données, mais plutôt limiter les connexions à une seule et réutiliser la même connexion. Par conséquent, utilisez le modèle singleton lors de la gestion des connexions à la base de données.
L'image ci-dessous montre une chaîne de connexion avec la récupération de la connexion :
public class Database {
private String URL = "jdbc:mysql://localhost:3306/your_db_name"; //database url
private String username = ""; //database username
private String password = ""; //database password
private static Database theDatabase = new Database();
private Connection theConnection;
private Database(){
try{
Class.forName("com.mysql.jdbc.Driver"); //setting classname of JDBC Driver
this.theConnection = DriverManager.getConnection(URL, username, password);
} catch(Exception ex){
System.out.println("Error Connecting to Database: "+ex);
}
}
public static Database getDatabaseInstance(){
return theDatabase;
}
public Connection getTheConnectionObject(){
return theConnection;
}
}
Voici un petit code de mon côté :)
conducteur nécessaire :
com.mysql.jdbc.Driver
télécharger : aquí (Plate-forme indépendante)
en une seule ligne :
jdbc:mysql://localhost:3306/db-name?user=user_name&password=db_password&useSSL=false
exemple de code :
public static void testDB(){
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
Connection connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/db-name?user=user_name&password=db_password&useSSL=false");
if (connection != null) {
Statement statement = connection.createStatement();
if (statement != null) {
ResultSet resultSet = statement.executeQuery("select * from test");
if (resultSet != null) {
ResultSetMetaData meta = resultSet.getMetaData();
int length = meta.getColumnCount();
while(resultSet.next())
{
for(int i = 1; i <= length; i++){
System.out.println(meta.getColumnName(i) + ": " + resultSet.getString(meta.getColumnName(i)));
}
}
resultSet.close();
}
statement.close();
}
connection.close();
}
} catch (Throwable throwable) {
throwable.printStackTrace();
}
}