2017-04-25 90 views
0

我是Java新手,我想在.NET中做類似EF的工作。 那麼,有沒有什麼辦法可以在每次有人在沒有密碼或用戶名的新PC上運行應用程序時,在MySql本地數據庫中自動創建數據庫?Java自動創建數據庫

我試着這樣做

Connection Conn = DriverManager.getConnection 
        ("jdbc:mysql://localhost/?user=root&password=rootpassword"); 
       Statement s=Conn.createStatement(); 
        int Result=s.executeUpdate("CREATE DATABASE databasename"); 
+0

請張貼你到目前爲止所做的任何試驗。 –

+0

實體框架的等價物是[Java持久性API](http://docs.oracle.com/javaee/7/tutorial/partpersist.htm)或JPA。但是,我不認爲它可以自動創建或升級數據庫。請參閱http://stackoverflow.com/questions/3942085/create-database-with-jpa。 – VGR

回答

0

您可以檢查Database Schema Creation,它是Java Persistence API的一部分,它可以讓你使用javax.persistence.schema-generation.*性能運行一套應用啓動時SQL文件的能力,以及如果您沒有提供應用程序,它會將您的應用程序連接到默認的datasource。但它主要是建議在開發和測試階段使用

通常情況下,你將不得不創建一個看起來像這樣

<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence 
      http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> 
<persistence-unit name="examplePU" transaction-type="JTA"> 
    <properties> 
     <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/> 
     <property name="javax.persistence.schema-generation.create-source" value="script"/> 
     <property name="javax.persistence.schema-generation.drop-source" value="script"/> 
     <property name="javax.persistence.schema-generation.create-script-source" value="sql/create.sql"/> 
     <property name="javax.persistence.schema-generation.drop-script-source" value="sql/drop.sql"/> 
     <property name="javax.persistence.sql-load-script-source" value="sql/load.sql"/> 
    </properties> 
</persistence-unit> 

您可以使用它的更多例子persistence.xml部署描述符像herehere