gpt4 book ai didi

java - 数据库池 - 在 Spring3 MVC 中连接到 Mysql 数据库

转载 作者:行者123 更新时间:2023-12-04 06:00:29 25 4
gpt4 key购买 nike

我正在尝试在我的第一个 Spring 项目中连接到 mysql 数据库,但我似乎忽略了一些非常简单的东西。

我的 application-context.xml 文件中有这个 bean,它被注释掉了!

<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource"
p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.url}"
p:username="${jdbc.username}"
p:password="${jdbc.password}" />

我知道这听起来很愚蠢,但是为了创建一个使用 JDBC 和 Spring JDBCTemplate 连接到 Mysql 数据库的类,我该怎么做呢?

我对如何在上面的 bean 中填充属性感到困惑,我是否在这样的父类(super class)中执行此操作,然后从中扩展我的子类。
import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class JdbcDao {
protected DriverManagerDataSource dataSource = new DriverManagerDataSource();
JdbcDao(){
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost/db_name");
dataSource.setUsername("bcash");
dataSource.setPassword("");
}
}

我很困惑,所以真的很感激任何帮助,

非常感谢

最佳答案

如果你使用 Tomcat 作为你的应用服务器,你可以做更多这样的事情。

在服务器的 context.xml 文件中使用用户名/密码定义连接(而不是在应用程序中):

<Resource name="jdbc/resourceNameToUse"
auth="Container"
type="javax.sql.DataSource"
username="<UserName>"
password="<Password>"
driverName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/db_name"
maxActive="100"
maxIdle="5"
validationQuery="Select 1"
useCompression="true" />

然后,当您配置 Spring 时,您将创建一个数据源,该数据源使用 JNDI 查找上面定义的资源:
  <bean id="targetDataSource" 
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName"
value="java:comp/env/jdbc/resourceNameToUse"/>
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
<property name="targetDataSource">
<ref local="targetDataSource"/>
</property>
</bean>

此时,您可以创建 JdbcTemplate 的实例作为引用数据源的 Spring bean:
  <bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>

如果您使用的是 Spring 3,您可以简单地将 DAO 中的 JdbcTemplate 标记为 @AutoWired Spring 会将变量名称与您定义的 bean 的 id 匹配,并为您注入(inject) JdbcTemplate。如果您不使用 Spring 3,您可以在定义 DAO bean 时简单地注入(inject) JdbcTemplate。
public class MyDao {
@AutoWired
private JdbcTemplate jdbcTemplate;
}

关于java - 数据库池 - 在 Spring3 MVC 中连接到 Mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8965652/

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