JavaからMySQLデータベースを作成することはできますか?
データベース名がURLで指定されているこのような接続URLの例を見ただけです。
String url="jdbc:mysql://localhost:3306/test";
Connection con = DriverManager.getConnection( url, "cb0", "xxx" );
ログイン名とパスワードしかない場合、どうすればMySQLデータベースを作成できますか?
データベースは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");
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();
そのような問題に対するエレガントなアプローチは、Apacheの DDL Utils を使用することです。 (外部で構成可能な)DDLの実行を許可するという基本的な目的を果たすだけでなく、アプリケーションデータベースを独立させます。
次の行を使用できます。
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();
}
さらに簡単にするには、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);
}
}