Créer une base de données MySQL à partir de Java


Est-il possible de créer une base de données MySQL à partir de Java?

Je n'ai vu que des exemples d'URL de connexion comme celui-ci où le nom de la base de données est spécifié dans l'URL:

String url="jdbc:mysql://localhost:3306/test";

Connection con = DriverManager.getConnection( url, "cb0", "xxx" );

Comment puis-je créer une base de données MySQL lorsque je n'ai qu'un nom d'utilisateur et un mot de passe?

Author: Ole, 2009-04-04

5 answers

La base de données n'est pas requise dans la connexion jdbc, vous pouvez donc faire quelque chose comme recommandé à http://forums.mysql.com/read.php?39,99321, 102211#msg-102211 et 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");
 42
Author: Jeremy Stanley, 2009-04-04 17:27:39

Pour créer une base de données via du code Java, vous devez utiliser executeUpdate(sql) au lieu de executeQuery(sql); et vous connecter à la base de données mysql en tant que root:

connection =  DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/mysql?zeroDateTimeBehavior=convertToNull",
    "root", "root"
);
Statement st = connection.createStatement();
st.executeUpdate(sql);
st.close();
 7
Author: PKhode, 2012-11-30 15:40:26

Une approche élégante de ces problèmes utilise DDL Utils d'Apache. Non seulement cela servirait l'objectif de base de permettre d'exécuter vos DDL (configurables en externe), mais rendrait également votre base de données d'application indépendante.

 2
Author: pugmarx, 2009-05-17 12:24:48

Pour rendre les choses encore plus faciles, vous pouvez utiliser NetBeans 6.5 et cela rend la configuration des bases de données SQL beaucoup plus facile. Je les utilise en ce moment et c'est une bouée de sauvetage sur les mises en page GUI et les connexions à la base de données. Voici du code sur la façon dont je me connecte à la base de données mysql à partir 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);
        }
    }
 1
Author: durrellp, 2016-10-01 14:11:56

Vous pouvez utiliser ces lignes:

    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();
}
 1
Author: Richard Flores, 2016-11-02 21:00:16