(四) Spring配置
applicationContext.xml中需要配置一个数据源,并将该数据源设置到personDao中。因为JdbcTemplate需要用到数据源。PersonDaoImpl还添加了一个非接口的方法initDatabase(),用于生成表结构。需要将initDatabase配置到Spring中。配置代码如下:
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>
<property name="url" value="jdbc:sqlserver://localhost:1433;databaseName=spring"></property>
<property name="username" value="sa"></property>
<property name="password" value="zhangjie"></property>
</bean>
<bean id="personDao" class="com.zhangjie.spring.dao.PersonDaoImpl" depends-on="dataSource" init-method="initDatabase"> <!-- 初始化方法 -->
<property name="dataSource" ref="dataSource"></property> <!-- 设置数据源 -->
</bean>
(五) 运行代码
下面的代码中先加载applicationContext.xml,创建BeanFactory并从中获取DAO对象,然后实例化一个Person对象,并用DAO保存近数据库,最后输出记录总数,所有的Person对象。运行代码如下:
package com.zhangjie.spring.dao;
import java.util.List;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
public class DaoRun {
public static void main(String[] args) {
XmlBeanFactory factory = new XmlBeanFactory( //获取Factory
new ClassPathResource("applicationContext.xml")
);
IPersonDao personDao = (IPersonDao)factory.getBean("personDao"); //获取DAO
Person person = new Person();
person.setName("zhangjie");
person.setAge(20);
person.setSex("男");
person.setBirthday(new Date());
personDao.addPerson(person);
System.out.println("Count:"+personDao.getPersonsCount()); //查询Person总数
System.out.println("Name:"+personDao.getPersonName(1)); //查询Person姓名
List<erson> personList = personDao.listPersons(); //查询Person姓名 for(Person p : personList){
System.out.println("Name:"+p.getName());
System.out.println("Birthday:"+p.getBirthday());
}
}
}
(六) 运行效果