web-dev-qa-db-ja.com

JavaからMySQLデータベースを作成

JavaからMySQLデータベースを作成することはできますか?

データベース名がURLで指定されているこのような接続URLの例を見ただけです。

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

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

ログイン名とパスワードしかない場合、どうすればMySQLデータベースを作成できますか?

25
cb0

データベースはjdbc接続には必要ないため、 http://forums.mysql.com/read.php?39,99321,102211#msg-102211 で推奨されているようなことができます。 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");
47
Jeremy Stanley

Javaコードを使用してデータベースを作成するには、executeUpdate(sql)の代わりにexecuteQuery(sql);を使用し、mysqlデータベースにルートとして接続する必要があります。

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

そのような問題に対するエレガントなアプローチは、Apacheの DDL Utils を使用することです。 (外部で構成可能な)DDLの実行を許可するという基本的な目的を果たすだけでなく、アプリケーションデータベースを独立させます。

2
pugmarx

次の行を使用できます。

    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
Richard Flores

さらに簡単にするには、NetBeans 6.5を使用します。これにより、SQLデータベースのセットアップが非常に簡単になります。SO。私は今それらを使用しています。 NetBeansからmysqlデータベースに接続する方法に関するコード:

    //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
durrellp