2012-09-29 43 views
11

我已经查看了定义bean的文档。我只是不清楚什么类文件用于Mysql数据库。任何人都可以填写下面的bean定义吗?如何在Spring中通过XML定义MySql数据源bean

<bean name="dataSource" class=""> 
    <property name="driverClassName" value="" /> 
    <property name="url" value="mysql://localhost/GameManager" /> 
    <property name="username" value="gamemanagertest" /> 
    <property name="password" value="1" /> 
</bean> 

回答

38
<bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
    <property name="url" value="jdbc:mysql://localhost:3306/GameManager" /> 
    <property name="username" value="gamemanagertest" /> 
    <property name="password" value="1" /> 
</bean> 

http://docs.spring.io/spring-data/jdbc/docs/1.1.0.M1/reference/html/orcl.datasource.html

+0

你的URL是错误的。我修好了它。这真的是用户设置的用户名和密码吗?不知怎的,我怀疑这一点。 – duffymo

+0

如果有人想使用连接池? –

5

使用这个类org.springframework.jdbc.datasource.DriverManagerDataSource - DriverManagerDataSource。作为一种最佳实践,如果我们将数据库值隔离为.properties文件并将其配置到我们的spring servlet xml配置中,则更好。在下面的示例中,属性存储为键值对,我们使用相应的key访问value

的applicationContext-dataSource.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close"> 
    <property name="driverClassName" value="${jdbc.driverClassName}" /> 
    <property name="url" value="${jdbc.url}" /> 
    <property name="username" value="${jdbc.username}"/> 
    <property name="password" value="${jdbc.password}"/> 
    <property name="connectionCachingEnabled" value="true"/> 
</bean> 

<context:property-placeholder location="classpath:jdbc.properties"/> 

jdbc.propeties文件:

jdbc.driverClassName=com.mysql.jdbc.Driver 
jdbc.url=jdbc:mysql://localhost:3306/sample_db 
jdbc.username=root 
jdbc.password=sec3ret 
+1

是的,但使用财产占位符不是重点,只是使问题复杂化。另外,为什么要在表示层中声明基础结构bean?此外,使用环境变量正在替代属性文件的使用。 – cyotee

+0

是propeties文件不是重点,但你可以在哪里看到我的答案中的表示层,我相信使用'properties'文件是一个很好的做法,而不是编辑xml配置http://stackoverflow.com/a/883910/ 1793718。它允许存储多个键值对,以及如何使用环境变量而不是属性文件?你能给我一个链接吗? – Lucky

+0

[“这对于允许部署应用程序的人员自定义特定于环境的属性(例如数据库URL,用户名和密码)很有用,而没有修改容器主XML定义文件或文件的复杂性或风险。”] (http://docs.spring.io/spring/docs/2.5.x/reference/beans.html#beans-factory-placeholderconfigurer) – Lucky

相关问题