当前位置: 首页 > 面试题库 >

persistence.xml从.properties文件导入数据库参数值

郎曜文
2023-03-14
问题内容

我想让我的应用程序persistence.xml像

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
                http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
                version="1.0">
   <persistence-unit name="appName" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="hibernate.dialect" value="${db.dialect'}"/>
            <property name="javax.persistence.jdbc.driver" value="${db.driver}"/>
            <property name="javax.persistence.jdbc.user" value="${db.user}"/>
            <property name="javax.persistence.jdbc.password" value="${db.password}"/>
            <property name="javax.persistence.jdbc.url" value="${db.url}"/>
        </properties>
    </persistence-unit>
</persistence>

从源文件夹中某个地方的简单文本文件获取这些占位符值。

我读到有关使用Spring做这样的事情的可能

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <value>classpath:com/foo/jdbc.properties</value>
    </property>
</bean>

但是这里我们不使用Spring,只是使用Hibernate和一些Primefaces。

可能吗?

谢谢!

编辑:我没有提到一些事情,但是作为参考,我也在使用Shiro
Security和Ant做一些事情。我将发布解决方案作为答案。这使我的项目有3个带有数据库参数的不同文件:

  • persistence.xml(hibernate)
  • context.xml(Shiro)
  • database.properties(用于Ant中的Flyway任务)

问题答案:

我编辑提到我正在使用Shiro
Security,它也需要一些数据库参数。我只需要一个数据库参数位置,就可以将它们保留在context.xml中,并在其他数据库中引用它。

1)蚂蚁读取context.xml

Context.xml具有

<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <!-- Other stuff... -->

    <!-- Shiro's -->
    <Resource name="jdbc/postgres" auth="Container"
        type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
        url="jdbc:postgresql://url-to-db/database"
        username="user" password="pass" />
</Context>

在Ant build.xml中使用过

<xmlproperty file="/path/to/context.xml" keepRoot="false" semanticAttributes="true" includeSemanticAttribute="true" />

然后使用

<target name="init-flyway">
    <property name="flyway.url" value="${Resource.url}" />
    <property name="flyway.user" value="${Resource.username}" />
    <property name="flyway.password" value="${Resource.password}" />
    <!-- stuff stuff stuff -->
</target>

2)persistence.xml读取context.xml

可以使用此使用上下文的数据存储

<non-jta-data-source>java:/comp/env/jdbc/postgres</non-jta-data-source>

因此,我杀死了3个数据库参数,只剩下1个。

谢谢您的帮助!



 类似资料:
  • 问题内容: 是否可以将数据从XML文件导入到SQL数据库,如果可以,该怎么做。我有一个包含约50000条目的XML文件,我必须创建一个可以操纵该数据(主要是读取和比较)的应用程序- 因此,我担心的是使用该数量的数据进行操纵(而且很可能未来还会有更多)将会非常缓慢且效率低下。如果您认为还有其他选择会更好,请告知。谢谢 问题答案: 您可以使用SQL Server导入和导出向导。您还可以查看SQL Se

  • 想要知道更多东西吗?当你需要从表中查找某些值时,可以使用冗长的 case 语句或 selectors 实现,但更整洁的方式是使用 extlookup 函数实现。 在 puppetmaster 上可以使用 extlookup 函数查询外部的 CSV 文件,并返回匹配的数据片段。 将所有数据组织到一个单一的文件并将它从 Puppet 配置清单中分离出来, 可以使维护工作变得更简单,也便于与其他人分享:

  • 我正在创建一个处理库,它需要存储在数据文件夹中的对象和材料文件。这是文件系统: 当我创建我的库时,我有主文件夹和库文件夹(包含jar文件)和包含资产(obj/mtl文件)的数据文件夹。当我导入我的库时,它可以使用我的类和函数(因此它有效),但它找不到目标文件。 处理内置的loadShape函数应该在模型中读取,但只有当数据文件夹与草图位于同一目录中时,它才会在文件中读取,因此库如何将数据文件夹自动

  • 问题内容: 有没有办法将数据从JSON文件导入R?更具体地说,该文件是带有字符串字段,对象和数组的JSON对象的数组。关于如何处理此http://cran.r-project.org/web/packages/rjson/rjson.pdf,RJSON软件包尚不清楚。 问题答案: 首先安装软件包: 然后: 更新: 从0.2.1版本开始

  • 我有一个Azure函数,它检索包含多个BCP文件的zip文件,这些文件将它们解压缩并添加为Blob。 我现在想将BCP文件导入我的SQL数据库,但不确定如何进行。我知道我可以使用以下脚本并运行SqlCommand: 但是这显然不起作用,因为SQL服务器没有访问本地函数的D:驱动器。 我应该如何加载数据?是否可以将BCP文件加载到内存中,然后传递SQL命令?或者我可以直接将文件传递到SQL服务器?

  • 本文向大家介绍Python之csv文件从MySQL数据库导入导出的方法,包括了Python之csv文件从MySQL数据库导入导出的方法的使用技巧和注意事项,需要的朋友参考一下 Python从MySQL数据库中导出csv文件处理 csv文件导入MySQL数据库 注: 1.csv文件的表头如: mysql的创建tb_csv表语句 这里为了省事,表中的字段都指明varchar类型 MySQL数据库写入c