2009-04-04 41 views
20

Có thể tạo cơ sở dữ liệu MySQL từ Java không?Tạo cơ sở dữ liệu MySQL từ Java

Tôi đã chỉ nhìn thấy URL kết nối ví dụ như thế này mà tên cơ sở dữ liệu được quy định trong URL:

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

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

Làm thế nào tôi có thể tạo ra một cơ sở dữ liệu MySQL khi tôi chỉ có một tên đăng nhập và mật khẩu?

Trả lời

38

Cơ sở dữ liệu không cần thiết trong việc kết nối jdbc, vì vậy bạn có thể làm một cái gì đó giống như khuyến cáo tại http://forums.mysql.com/read.php?39,99321,102211#msg-102211http://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"); 
+1

+1 câu trả lời đẹp , giải quyết vấn đề của tôi – SpringLearner

2

Để làm cho mọi việc dễ dàng hơn, bạn có thể sử dụng NetBeans 6.5 và nó làm cho thiết lập Cơ sở dữ liệu SQL SO dễ dàng hơn nhiều. Tôi đang sử dụng chúng ngay bây giờ và nó là một phao cứu sinh trên các bố cục GUI và các kết nối cơ sở dữ liệu. Dưới đây là một số mã trên làm thế nào tôi kết nối với cơ sở dữ liệu mysql từ 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); 
     } 
    } 
+0

NetBeans wiki có tất cả thông tin bạn cần tho thiết lập một bảng sql trong dự án của bạn! – durrellp

2

Một cách tiếp cận thanh lịch đến các vấn đề như vậy được sử dụng DDL Utils từ Apache. Nó không chỉ phục vụ mục đích cơ bản của việc cho phép thực hiện DDLs (cấu hình bên ngoài) mà còn làm cho cơ sở dữ liệu ứng dụng của bạn độc lập.

7

Để tạo cơ sở dữ liệu thông qua mã Java, bạn phải sử dụng executeUpdate(sql) thay vì executeQuery(sql); và kết nối với cơ sở dữ liệu mysql như root:

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

Bạn có thể sử dụng dòng này:

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(); 
} 
+0

Hãy gửi cho tôi địa chỉ email của bạn để tôi có thể gửi tệp JAR. –

+2

Cảm ơn. Nhưng xin lưu ý câu hỏi là 6 năm trước :) – cb0

Các vấn đề liên quan