一、xml配置:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 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}"/> </bean> <!-- 参数读取文件 --> <context:property-placeholder location="jdbc.properties"/> <!-- 支持命名参数变量的JdbcTemplate,StudentDaoImpl中的参数使用变量名,相比原来的问好更加清晰 --> <bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"> <constructor-arg ref="dataSource"></constructor-arg> </bean> <!-- 数据库操作类 --> <bean id="studentDao" class="com.fx.dao.impl.StudentDaoImpl"> <property name="namedParameterJdbcTemplate" ref="namedParameterJdbcTemplate"></property> </bean> <!-- 业务操作类 --> <bean id="studentService" class="com.fx.service.impl.StudentServiceImpl"> <property name="studentDao" ref="studentDao"></property> </bean> </beans>
二、java代码:
package com.fx.dao.impl; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowCallbackHandler; import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; import com.fx.dao.StudentDao; import com.fx.model.Student; public class StudentDaoImpl implements StudentDao{ private NamedParameterJdbcTemplate namedParameterJdbcTemplate; public void setNamedParameterJdbcTemplate( NamedParameterJdbcTemplate namedParameterJdbcTemplate) { this.namedParameterJdbcTemplate = namedParameterJdbcTemplate; } @Override public int addStudent(Student student) { // 命名参数变量 String sql="insert into t_student values(null,:name,:age)"; MapSqlParameterSource sps=new MapSqlParameterSource(); sps.addValue("name", student.getName()); sps.addValue("age", student.getAge()); return namedParameterJdbcTemplate.update(sql,sps); } @Override public int updateStudent(Student student) { // 命名参数变量 String sql="update t_student set name=:name,age=:age where id=:id"; MapSqlParameterSource sps=new MapSqlParameterSource(); sps.addValue("name", student.getName()); sps.addValue("age", student.getAge()); sps.addValue("id", student.getId()); return namedParameterJdbcTemplate.update(sql,sps); } @Override public int deleteStudent(int id) { // 命名参数变量 String sql="delete from t_student where id=:id"; MapSqlParameterSource sps=new MapSqlParameterSource(); sps.addValue("id", id); return namedParameterJdbcTemplate.update(sql,sps); } @Override public List<Student> findStudents() { String sql="select * from t_student"; final List<Student> studentList=new ArrayList<Student>(); namedParameterJdbcTemplate.query(sql, new RowCallbackHandler(){ @Override public void processRow(ResultSet rs) throws SQLException { Student student=new Student(); student.setId(rs.getInt("id")); student.setName(rs.getString("name")); student.setAge(rs.getInt("age")); studentList.add(student); } }); return studentList; } }