2012-09-29 38 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

相關問題