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

如何迁移Java,Spring Project以使用JNDI数据源

萧越泽
2023-03-14
问题内容

我有一个从命令行运行的Java项目。它正在使用Spring。目前,我的项目是mySQL。使用可以从下面的config.xml中看到

<bean id="mysqldataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="mysqldataSource.url" />
    <property name="username" value="mysqldataSource.username" />
    <property name="password" value="mysqldataSource.password" />
</bean>

我的公司要求我将项目从使用MySQL更改为使用JNDI数据源。

下面是我的Java代码,可以看到正在使用jdbcTemplate:

public class DisasterReliefMySQLImpl extends JdbcTemplate implements
        DisasterReliefMySQL {

    private static Log log = LogFactory.getLog(DisasterReliefMySQLImpl.class
            .getName());

    String querySQL;
    int counter = 0;

    public int getCounter() {
        return counter;
    }

    private String getQuerySQL() {
        return querySQL;
    }

    private void setQuerySQL(String querySQL) {
        this.querySQL = querySQL;
    }

    DisasterReliefMySQLImpl(DataSource ds) {
        super(ds);
    }


    DisasterReliefMySQLImpl(DataSource ds, String querySQL) {
        super(ds);
        setQuerySQL(querySQL);
    }

    public int updateDonation(String id) {
        Long eTime = System.currentTimeMillis() / 1000;

        String updateSQL = "update uft_donation set sent_to_mbs="
                + eTime.toString() + " where  donation_id =" + id;

        return (int) this.update(updateSQL);
    }

    public List<Donation> returnResults() {
        log.debug("Starting returnResults...");

        List<Donation> Donations = new ArrayList<Donation>();

        List<Map<String, Object>> rows = this.queryForList(getQuerySQL());

        counter = 0;

        for (Map row : rows) {
            Donation d = new Donation();

            d.setDonationID((Long) row.get("donation_id"));
            d.setCCTransactionNumber((String) row.get("txn_id"));
            d.setProgramCode((String) row.get("gl_code"));
            d.setLastName((String) row.get("billing_last_name"));
            d.setFirstName((String) row.get("billing_first_name"));
            d.setAmount((String) row.get("mc_gross"));
            d.setAddressLine1((String) row.get("billing_street1"));
            d.setAddressLine2((String) row.get("billing_street2"));
            d.setCity((String) row.get("billing_city"));
            d.setState((String) row.get("zone_code"));
            d.setZipCode((String) row.get("billing_postal_code"));
            d.setCountry((String) row.get("country_name"));

            Donations.add(d);
            counter++;
        }

        log.debug(counter + " Donation(s) loaded");
        return Donations;
    }

}

有人可以告诉我如何更改它以使用JNDI数据源。我还需要在某个地方进行数据库池的JNDI服务吗?我们有带有数据源的JBoss
AS7,我可以从JBoss外部使用它吗?

谢谢


问题答案:

在网上搜索“ jboss external jndi”时发现

http://www.engfers.com/2008/08/07/exposed_accessing-jboss-jndi-
objects_datasources-from-an-external-
jvm/

看起来像你所追求的。您可以使用自己喜欢的搜索引擎找到令人惊奇的东西;)



 类似资料:
  • 本文介绍如何使用 DM (Data Migration) 迁移数据。 第 1 步:部署 DM 集群 目前推荐使用 TiUP 部署 DM 集群,具体部署方法参照 使用 TiUP 部署 DM 集群;也可以使用 binary 部署 DM 集群用于体验或者测试,具体部署方法参照使用 DM binary 部署 DM 集群。 注意: 在 DM 所有的配置文件中,对于数据库密码推荐使用 dmctl 加密后的密文

  • 开发数据库由liquibase管理。生产数据库仍然为空。根据文档,我运行了来了解开发数据库和生产数据库之间的差异。该命令生成包含变更集列表的xml数据库变更日志。 我想下一步是使用差异更改日志,并将其应用于生产数据库。但是我在文档中找不到正确的maven命令来运行。

  • 本文档介绍支持从哪些路径将数据迁移到 TiDB,包括从 MySQL 迁移到 TiDB 和从 CSV/SQL 文件迁移到 TiDB。 各类数据迁移 参阅数据迁移概述及各类迁移内容。

  • 问题内容: 在有关类的Spring javadoc文章中,该类非常简单,建议使用 使用容器提供的JNDI数据源。这样DataSource可以通过DataSourceSpring ApplicationContext中的bean 形式公开。 问题是:我该如何完成? 例如,如果我希望让访问我的自定义MySQL数据库,那我需要什么?我应该在上下文配置等中写些什么? 问题答案: 如果使用基于Spring

  • 我想用Spring Boot配置JNDI数据源 我知道可以在application.properties.中使用以下内容创建jndi。我在纠结的是如何将其与JBoss WildFly联系起来? a.我需要在WildFly的standalone.xml下添加/更改什么和b. Spring Boot主应用程序类ProjectPocApiApplication下需要的任何更改 谢谢

  • 本文向大家介绍如何利用FluentMigrator实现数据库迁移,包括了如何利用FluentMigrator实现数据库迁移的使用技巧和注意事项,需要的朋友参考一下 FluentMigrator Fluent Migrator是一个基于.NET的迁移框架,你可以像使用Ruby on Rails Migrations一样使用它。Fluent Migrator的最新版本是3.13版,官网地址https: