【问题标题】:Database configuration with WildFly使用 WildFly 配置数据库
【发布时间】:2018-06-14 05:25:16
【问题描述】:

我打算在我的应用程序中配置 postgresql,但我不想通过 WildFly 管理对我的数据库的访问。是否可以避免这种方法并选择另一种方法,但使用 jndi

【问题讨论】:

  • 您希望如何管理您的数据库访问? JNDI 可以为您提供参数,但您必须自己创建连接、连接池等内容。
  • @stdunbar,我有一个任务:使用 JNDI 配置 postgresql(我们使用 WildFly)
  • @IgorGorbunov 你已经得到了 jndi 的解决方案
  • 你至少需要展示一些你想要实现的伪代码。目前看来你也不知道

标签: postgresql jakarta-ee wildfly jndi


【解决方案1】:

由于缺乏知识,问题不正确。问题是没有WildFly但使用jndi无法配置db。 Jndi 是 WildFly 用来查找数据源的工具:)

【讨论】:

    【解决方案2】:

    您可以在此处找到 Wildfly Wildfly datasource configuration 的配置。可以使用 jndi 访问数据源。您必须将 example-jdbc-driver 替换为 postgres 驱动程序。 下面是我为 IBM-informix 配置数据源的示例

     <datasource jndi-name="java:jboss/datasources/mvpdb" pool-name="mvpdbpool">
                    <connection-url>jdbc:informix-sqli://mars.bza-intern.de:30020/demomvp:informixserver=tcpmars;DB_LOCALE=de_DE.8859-1;IFX_LOCK_MODE_WAIT=10;</connection-url>
                    <driver>informix</driver>
                    <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
                    <pool>
                        <min-pool-size>1</min-pool-size>
                        <max-pool-size>3</max-pool-size>
                        <prefill>true</prefill>
                    </pool>
                    <security>
                        <user-name>abcd</user-name>
                        <password>efgh</password>
                    </security>
                    <statement>
                        <prepared-statement-cache-size>32</prepared-statement-cache-size>
                        <share-prepared-statements>true</share-prepared-statements>
                    </statement>
                </datasource>
    

    可以访问数据源(Spring上下文):

    使用 Java 配置

    @Bean(name = "mvpds", autowire = Autowire.BY_NAME)
    public DataSource Mvpds() {
        logger.info("Mvpds-bean");
        final JndiDataSourceLookup dsLookup = new JndiDataSourceLookup();
        dsLookup.setResourceRef(true);
        DataSource ds = dsLookup.getDataSource("java:jboss/datasources/mvpdb");
    return ds;
     }
    

    或 XML 定义

    <bean id="mvpds" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName"><value>java:jboss/datasources/mvpdb</value></property>
     </bean>
    

    【讨论】:

    • 感谢您的回复,我的问题是在没有 WildFly 的情况下找到 db 配置的方式,但我的问题与我对 jndi 缺乏了解有关。没有办法用 jndi 但没有 WildFly 配置 db :)
    【解决方案3】:

    如果你想连接一个没有wildFly等抽象层的postgresql数据库,你可以简单地使用jdbc(https://jdbc.postgresql.org/about/about.html):

    PostgreSQL JDBC Driver(简称 PgJDBC)允许 Java 程序 使用标准的、独立于数据库的连接到 PostgreSQL 数据库 Java 代码。是一个用纯 Java 编写的开源 JDBC 驱动程序(类型 4),并在PostgreSQL本地网络协议中进行通信。

    如果您更喜欢轻量级 ORM (Object Relational Mapping),我建议您使用 activejdbc (http://javalite.io/activejdbc)。

    【讨论】:

    • 感谢您的回答,但我有兴趣使用 jndi 设置 db
    猜你喜欢
    • 2021-03-12
    • 1970-01-01
    • 2021-06-02
    • 2023-03-09
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 2016-01-09
    相关资源
    最近更新 更多