Crear base de datos MySQL desde Java

¿Es posible crear una base de datos MySQL desde Java?

Solo he visto ejemplos de URL de conexión como esta, donde el nombre de la base de datos se especifica en la URL:

String url="jdbc:mysql://localhost:3306/test"; Connection con = DriverManager.getConnection( url, "cb0", "xxx" ); 

¿Cómo puedo crear una base de datos MySQL cuando solo tengo un nombre de usuario y contraseña?

La base de datos no es necesaria en la conexión jdbc, por lo que puede hacer algo como recomendado en http://forums.mysql.com/read.php?39.99321,102211#msg-102211 y http://marc.info /? l = mysql-java & m = 104508605511590 & w = 2 :

 Conn = DriverManager.getConnection ("jdbc:mysql://localhost/?user=root&password=rootpassword"); s=Conn.createStatement(); int Result=s.executeUpdate("CREATE DATABASE databasename"); 

Para crear una base de datos a través de código Java, debe usar executeUpdate(sql) lugar de executeQuery(sql); y conéctese a la base de datos mysql como root:

 connection = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mysql?zeroDateTimeBehavior=convertToNull", "root", "root" ); Statement st = connection.createStatement(); st.executeUpdate(sql); st.close(); 

Un enfoque elegante a tales problemas es usar DDL Utils de Apache. No solo cumpliría el propósito básico de permitir la ejecución de sus DDL (configurables externamente), sino que también haría que la base de datos de su aplicación sea independiente.

Para hacer las cosas aún más fáciles, puede usar NetBeans 6.5 y hace que la configuración de las bases de datos SQL sea mucho más fácil. Los estoy usando ahora y es un salvavidas en diseños de GUI y conexiones de bases de datos. Aquí hay un código sobre cómo me conecto a la base de datos mysql de NetBeans:

  //these are variables i declare in the beginning of my code public static final String DRIVER = "com.mysql.jdbc.Driver"; public static final String DATABASE_URL = "jdbc:mysql://localhost:3306/jtschema"; private Connection connection = null; public static Statement statement = null; public void initSQLServer() { try { Class.forName(DRIVER).newInstance(); try { connection = DriverManager.getConnection(DATABASE_URL, "root", "Dropatrain!248"); statement = connection.createStatement(); } catch (SQLException e) { System.out.println("SQLException: " + e.getMessage()); System.out.println("SQLState: " + e.getSQLState()); System.out.println("VendorError: " + e.getErrorCode()); } } catch (Exception ex) { System.out.println(ex); } } 

Puedes usar estas líneas:

  try { String databaseName = "dbName"; String userName = "root"; String password = "yourPassword"; String url = "jdbc:mysql://localhost:3306/mysql?zeroDateTimeBehavior=convertToNull"; Connection connection = DriverManager.getConnection(url,username, password); String sql = "CREATE DATABASE " + databaseName; Statement statement = connection.createStatement(); statement.executeUpdate(sql); statement.close(); JOptionPane.showMessageDialog(null, databaseName + " Database has been created successfully", "System Message", JOptionPane.INFORMATION_MESSAGE); } catch (Exception e) { e.printStackTrace(); }