5、配置DB访问
(1) 准备数据库
l 这里使用MySql(开源),创建用户test@localhost,密码为test,设置缺省数据库为test,并赋予test数据库全部权限:
l 在test数据库中创建users表:
DROP TABLE IF EXISTS `test`.`users`;
CREATE TABLE `test`.`users` (
`userid` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
PRIMARY KEY (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
l 追加几条测试数据:
INSERT INTO `users` (`userid`,`password`) VALUES
('t12345','123456'),
('test','123456');
(2) 定义DataSource(samples-ds.xml)
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>${database.driver}</value>
</property>
<property name="url">
<value>${database.url}</value>
</property>
<property name="username">
<value>${database.username}</value>
</property>
<property name="password">
<value>${database.password}</value>
</property>
</bean>
l 这里使用称为placeholder的${property}形式,可以用指定的properties文件中值替换,这需要在Bean中定义PropertyPlaceholderConfigurer(samples-common.xml):
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>/WEB-INF/classes/org/xqtu/samples/bean/samples.properties</value>
</property>
</bean>
l samples.properties中定义:
database.url=jdbc:mysql://localhost:3306/test
database.driver=com.mysql.jdbc.Driver
database.user=test
database.password=test
l 最后需要在struts-config.xml的Spring Plugin中追加Bean定义文件(后同,不再叙述)
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/classes/org/xqtu/samples/bean/samples-common.xml,
/WEB-INF/classes/org/xqtu/samples/bean/samples-ds.xml,
/WEB-INF/classes/org/xqtu/samples/bean/samples-services.xml,
/WEB-INF/classes/org/xqtu/samples/bean/samples-actions.xml" />
</plug-in>