创建数据库脚本mySQL

时间:2017-11-12 15:37:46

标签: java mysql database spring hibernate

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

编辑 - 这是配置文件

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

2 个答案:

答案 0 :(得分:1)

  

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

SchemaExport jar中,Hibernate提供了一个支持你想要做的{{1}}工具。

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

你在使用Maven吗?您可以使用以下内容:https://github.com/Devskiller/jpa2ddl

答案 1 :(得分:0)

  

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

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

  

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

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

您可以阅读absolute path here

<强>更新

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

您的朋友必须确保他有Mysql,并且正在使用端口3306。但是,应该没有任何问题。为什么你认为,它会失败?