【问题标题】:Getting user and password from system/file in persistence.xml从persistence.xml中的系统/文件获取用户和密码
【发布时间】:2016-01-28 05:57:37
【问题描述】:

我对 spring/hibernate 很陌生。我看到persistence.xml文件中的数据库连接设置是:

<properties>
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/tbm" />
        <property name="javax.persistence.jdbc.user" value="root" />
        <property name="javax.persistence.jdbc.password" value="root" />
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
        <property name="hibernate.show_sql" value="true" />
        <property name="hibernate.hbm2ddl.auto" value="update" />
    </properties>

我想知道是否可以从 System-properties 获取 userpassword 值。

上下文: 我有一个 Java Webapp,它被打包为 .war 文件。在 war 文件中,我在任何地方都看不到所说的 xml,但我希望 war 也适用于具有不同 mysql 凭据的系统,只需修改 war 中的一些配置文件。

【问题讨论】:

  • 数据源(在服务器中配置)是一种比手动配置更灵活的数据库连接管理方式。我也建议您阅读。
  • @ArunM:感谢您的建议,但这对我不起作用。它仍然显示无法连接到用户'',即没有获取系统属性。
  • @Gimby:谢谢,这是一个很好的解决方法,我们已经考虑过了,但是由于 MySQL 服务器版本不同,我们遇到了一些关于密码更改的问题。如果这不起作用,我们将在那里限制 MySQL 版本。
  • @UjjwalKumar 数据源绝不是一种解决方法。如果有的话,您现在正在实施一种解决方法。只是思考的食物。

标签: java mysql xml spring hibernate


【解决方案1】:

在你的 Spring 配置 xml 文件中,添加代码:

<mvc:resources location="/resources/" mapping="/resources/**" cache-period="604800" />

在您的 webapp 目录中:

在 config.properties 中:

jdbc.url=jdbc:mysql://localhost:3306/tbm
jdbc.username=root
jdbc.password=

在spring配置xml中使用:

<property name="javax.persistence.jdbc.url" value="${jdbc.url}" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-18
    • 2011-12-15
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多