我有一个从命令行运行的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/
看起来像你所追求的。您可以使用自己喜欢的搜索引擎找到令人惊奇的东西;)