saber - obtener nombre columna resultset java
Cómo verificar si una base de datos particular en mysql ya existe usando java (4)
En las versiones más nuevas de MySQL (5 y superiores) ejecute esta consulta:
SELECT COUNT(*)
FROM information_schema.tables
WHERE table_schema = ''[database name]''
AND table_name = ''[table name]'';
Si el resultado es 1, existe.
En Java JDBC se vería algo como esto:
// Create connection and statement
String query = "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema''[database name]'' AND table_name = ''[table name]''";
ResultSet rs = stmt.executeQuery(query);
rs.next();
boolean exists = rs.getInt("COUNT(*)") > 0;
// Close connection, statement, and result set.
return exists;
Hola a todos soy nuevo en jdbc y quería saber si hay una forma de verificar si una base de datos en particular ya existe en mysql.
Digamos que quería crear una base de datos llamada students, si la base de datos de los estudiantes ya está creada en mysql, un mensaje de error en eclipse indicaría que esta base de datos ya existe. Sin embargo, lo que quería hacer es crear un método booleano para verificar si la base de datos de estudiantes ya existe. Si existe, entonces el método booleano devolvería falso; de lo contrario, es verdadero, entonces puedo crear una base de datos de estudiantes. ¿Cómo hago esto en Java? ¿Hay algún método en jdbc que haga esto o necesito codificarlo desde cero? Gracias por tu ayuda.
EDIT 2
Seguí la sugerencia de mguymons y esto es lo que surgió
public boolean checkDBExists(String dbName){
try{
Class.forName(JDBCDriver); //Register JDBC Driver
System.out.println("Creating a connection...");
conn = DriverManager.getConnection(DBURL, USER, PASS); //Open a connection
ResultSet resultSet = conn.getMetaData().getCatalogs();
while (resultSet.next()) {
String databaseName = resultSet.getString(1);
if(databaseName.equals(dbName)){
return true;
}
}
resultSet.close();
}
catch(Exception e){
e.printStackTrace();
}
return false;
}
Lo haces de regreso al frente. La técnica correcta es intentar crearla y atrapar la excepción. La forma en que desea hacerlo está sujeta a los problemas de la ventana de tiempo: no estaba allí cuando realizó la prueba, pero estaba allí cuando intentó crearla. Y todavía tienes que atrapar la excepción de todos modos.
Puede obtener esa información de una conexión JDBC utilizando DatabaseMetaData # getCatalogs , aquí hay un ejemplo de cómo obtener los catálogos, también conocido como Database names
// Connection connection = <your java.sql.Connection>
ResultSet resultSet = connection.getMetaData().getCatalogs();
//iterate each catalog in the ResultSet
while (resultSet.next()) {
// Get the database name, which is at position 1
String databaseName = resultSet.getString(1);
}
resultSet.close();
show databases like ''students''
Si recuperas una fila, existe.