gpt4 book ai didi

java - 如何使用 Spring MVC 访问数据库

转载 作者:行者123 更新时间:2023-11-30 07:09:13 24 4
gpt4 key购买 nike

我正在浏览引用文档 - http://docs.spring.io/spring/docs/2.0.8/reference/jdbc.html使用 Spring 架构从 Web 应用程序连接数据库。

此处,代码使用数据源创建了一个 jdbcTemplate。

public class JdbcCorporateEventDao implements CorporateEventDao {

private JdbcTemplate jdbcTemplate;

public void setDataSource(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}

// JDBC-backed implementations of the methods on the CorporateEventDao follow...
}

数据源在xml文件中定义-

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="corporateEventDao" class="com.example.JdbcCorporateEventDao">
<property name="dataSource" ref="dataSource"/>
</bean>

<!-- the DataSource (parameterized for configuration via a PropertyPlaceHolderConfigurer) -->
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>

</beans>

我很难理解 -

  1. 在哪里存储这个 xml 文件?文件命名有任何术语吗?
  2. 数据源如何映射到 xml 的代码中?例如。如果我想在xml文件中有另一个环境,需要修改的代码应该是什么?

感谢您的投入。

最佳答案

  • 您可以将它存储在任何地方并随意命名!您通过将该 xml 文件导入您的 spring 上下文来创建 bean。

例如,如果我将我的文件命名为 datasource.xml 并将其存储在我的 src/main/resources/config 文件夹下:

<import resource="classpath:config/datasource.xml"/>
  • 认为您在问如何针对不同的环境轻松配置数据源。有很多方法可以解决这个问题——我通常在一个目录中创建一些数据源文件(通常是我上面提到的那个)

    datasource.DEV.xml
    datasource.QA.xml
    datasource.PROD.xml

这些中的每一个都配置到不同的数据库。然后我通过传入一个我称之为“env”的环境变量来导入:

<import resource="classpath:config/datasource.${env}.xml"/>

如果您使用 Eclipse 启动,您可以在“环境”选项卡下的运行配置中指定它。

关于java - 如何使用 Spring MVC 访问数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23349565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com