Создать базу данных MySQL из Java
Можно ли создать базу данных MySQL из Java?
Я видел только примеры URL-адресов подключения, например, где в базе данных указано имя базы данных:
String url="jdbc:mysql://localhost:3306/test";
Connection con = DriverManager.getConnection( url, "cb0", "xxx" );
Как я могу создать базу данных MySQL, когда у меня есть только логин и пароль?
5 ответов
База данных не требуется в соединении jdbc, поэтому вы можете сделать что-то вроде рекомендованного на http://forums.mysql.com/read.php?39,99321,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
база данных как root:
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mysql?zeroDateTimeBehavior=convertToNull",
"root", "root"
);
Statement st = connection.createStatement();
st.executeUpdate(sql);
st.close();
Элегантный подход к таким вопросам - использование DDL Utils от Apache. Это не только послужит основной цели разрешения выполнения ваших (настраиваемых извне) DDL, но также сделает вашу базу данных приложения независимой.
Чтобы упростить задачу, вы можете использовать NetBeans 6.5, что значительно упрощает настройку баз данных SQL. Я использую их прямо сейчас, и это спасает от разметки GUI и соединений с базой данных. Вот некоторый код о том, как я подключаюсь к базе данных mysql из 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);
}
}
Вы можете использовать эти строки:
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();
}