【问题标题】:Create database script mySQL创建数据库脚本 mySQL
【发布时间】:2018-04-25 07:47:53
【问题描述】:

我有动态 web java 项目,我正在使用 spring-MVC/hibernate。在我的 xml 配置文件中,我有一个用于设置 sessionFactory 的 bean(所有依赖项 - 我的本地数据库的 jdbc url 等)。有没有办法可以将这个项目+数据库发送给我的朋友并且它会起作用?我想知道,因为在 xml 配置文件中我有确切的 jdbc url、主机名、端口等,这些在我朋友的笔记本电脑上不必相同,但是有没有办法创建一些脚本来创建具有完全相同属性的数据库我的本地数据库?

编辑 - 这是配置文件

    <!-- Define Database DataSource / connection pool -->
    <bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
          destroy-method="close">
        <property name="driverClass" value="com.mysql.jdbc.Driver" />
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/java_task?useSSL=false" />
        <property name="user" value="me" />
        <property name="password" value="me" /> 

        <!-- these are connection pool properties for C3P0 -->
        <property name="minPoolSize" value="5" />
        <property name="maxPoolSize" value="20" />
        <property name="maxIdleTime" value="30000" />
    </bean>  

    <!-- Define Hibernate session factory -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <property name="dataSource" ref="myDataSource" />
        <property name="packagesToScan" value="com.javatask.entity" />
        <property name="hibernateProperties">
           <props>
              <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
              <prop key="hibernate.show_sql">true</prop>
           </props>
        </property>
   </bean>

【问题讨论】:

    标签: java mysql database spring hibernate


    【解决方案1】:

    有没有办法可以将这个项目 + 数据库发送给我的朋友和它 会工作吗?

    是的,你可以把你的代码放在像 Github 这样的公共存储库中,你的朋友可以从那里克隆它

    我想知道,因为在 xml 配置文件中我有确切的 jdbc url, 我朋友的主机名、端口等不必相同 笔记本电脑,但有没有办法创建一些脚本来创建 与我的本地数据库具有完全相同属性的数据库?

    我们不知道您的代码,但如果您在配置中提供了绝对路径,那么它将在您朋友的笔记本电脑中失败。如需更好的答案,请提供您的配置代码

    你可以阅读absolute path here


    更新

    我在您的配置代码中没有发现任何问题。它应该在另一个系统中运行良好。关于上传数据库,你可以简单地从你的数据库中导出它,并将分离的文件放入你当前项目的文件夹中。一旦你将你的代码推送到仓库,数据库也会在那里。然后其他人,将通过其他代码再次获得它。再次没有问题。

    你的朋友必须确定他有Mysql,并且它正在端口3306上工作。但是,应该没有问题。为什么你认为它会失败?

    【讨论】:

    • 我已经编辑了问题 - 你可以在那里看到它,但我知道它会失败我想知道是否有任何特殊的方法可以上传我的项目与数据库,这样它就不会失败。以及如何生成将创建整个本地数据库的脚本(不仅仅是将构建表和导入数据的导出数据脚本)?
    • @Druudik 我已经更新了我的答案,如果对你有帮助,请点赞。
    • 我明白你想说什么,但我只想给他一个完整的项目,这样他就不必做任何其他事情,比如设置 mysql 数据库端口等。但无论如何,谢谢你。不幸的是,由于我的声誉很低,我无法投票:/.
    • @Druudik 如果他想运行你的项目,他必须有你的代码+MySql。
    • 谢谢哥们:)
    【解决方案2】:

    [...] 有没有办法创建一些脚本来创建数据库 具有与我的本地数据库完全相同的属性?

    hibernate-tools jar 中,Hibernate 提供了一个SchemaExport 工具,它支持你想做的事情。

    您可以自己编写一个小程序来使用它,但我认为大多数人不会“自己动手”。我认为在构建系统中使用插件是很常见的。

    你在使用 Maven 吗?你可以使用这样的东西:https://github.com/Devskiller/jpa2ddl

    【讨论】:

    • 不幸的是,我没有使用 Maven,而且我对使用 spring 真的很陌生。你能告诉我一些细节它可以做什么?
    猜你喜欢
    • 2010-12-12
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    • 2011-02-16
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多