Java自动创建数据库

标签 java mysql database

我是 Java 新手,我想在 .NET 中做一些类似于 EF 的事情。 那么,有没有办法在每次有人在新电脑上运行应用程序而无需密码或用户名时自动在 MySql 本地数据库中创建数据库?

我尝试这样做

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

最佳答案

您可以查看 Database Schema Creation ,它是 Java Persistence API 的一部分,它使您能够运行一组 SQL使用javax.persistence.schema-generation.*启动应用程序时的文件属性,并将您的应用程序连接到默认的 datasource如果您没有提供。但主要建议在开发和测试阶段使用

通常,您必须创建一个 persistence.xml部署描述符如下所示

<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>

您可以找到更多使用它的示例,例如 herehere

关于Java自动创建数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43617784/

相关文章:

sql-server - 数据库日志跟踪什么?

java - 这里是否有不使用 getter 和 setter 的情况?

java - 在 Java 程序中使用 Linux Strace 命令

mysql - 在庞大的数据集上使用 IN 是个好主意吗?

mysql - SQL:格式化电话号码(插入空格)

python - python 对象的可搜索类数据库结构?

java - JOptionPane.showInternalInput 对话框不可编辑

java - 使用 Java 将文件上传和 POST 到 PHP 页面

数据库中的 HTML 标记不起作用

mysql - 使用正向工程在 MySQL 中添加记录,并且在数字数据类型中插入时出现错误