Создание базы данных MySQL с Java
Можно ли создать базу данных MySQL из Java?
Я видел только примеры URL-адресов соединений, например, где имя базы данных указано в URL-адресе:
String url="jdbc:mysql://localhost:3306/test";
Connection con = DriverManager.getConnection( url, "cb0", "xxx" );
Как создать базу данных MySQL, когда у меня есть только имя пользователя и пароль?
Ответы
Ответ 1
База данных не требуется в соединении 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");
Ответ 2
Чтобы создать базу данных через 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();
Ответ 3
Чтобы сделать вещи еще проще, вы можете использовать NetBeans 6.5 и упростить настройку баз данных SQL. Я использую их прямо сейчас и его спасатель в графических интерфейсах и соединениях с базой данных. Вот какой код для подключения к базе данных 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);
}
}
Ответ 4
Элегантный подход к таким проблемам заключается в использовании DDL Utils от Apache. Это не только послужит основной цели, позволяющей выполнять ваши (внешние настраиваемые) DDL, но также сделает вашу базу данных приложений независимой.
Ответ 5
Вы можете использовать следующие строки:
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();
}