首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

用计策模式对DAO进一步修改

2012-09-15 
用策略模式对DAO进一步修改当查询条件改变时,DAO中rowMapper方法就不能满足需求,所以要将rowMapper单独定

用策略模式对DAO进一步修改

当查询条件改变时,DAO中rowMapper方法就不能满足需求,所以要将rowMapper单独定义成一个接口,在DAO中根据自己的需求定义自己的DAO。

1、定义RowMapper接口:

package com.itcast.myjdbc.dao.impl;import java.sql.ResultSet;import java.sql.SQLException;import com.itcast.myjdbc.bean.Employer;import com.itcast.myjdbc.dao.refact.MyDAOTemplate;import com.itcast.myjdbc.dao.refact.RowMapper;public class EmployerDAOJdbcImpl3 {MyDAOTemplate template = new MyDAOTemplate();public Employer findEmployer1(String name) {String sql = "select name,birthday from TB_EMPLOYERS where name = ?";Object [] args = new Object[] {name};Employer employer = null;try {employer = (Employer) template.find(sql, args, new RowMapper() {@Overridepublic Object rowMapper(ResultSet rs, Object obj)throws SQLException {Employer employer = (Employer) obj;employer = new Employer();employer.setName(rs.getString("name"));employer.setBirthday(rs.getDate("birthday"));return employer;}});} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return employer;}public Employer findEmployer2(String name) {String sql = "select name,birthday,salary from TB_EMPLOYERS where name = ?";Object [] args = new Object[] {name};Employer employer = null;try {employer = (Employer) template.find(sql, args, new RowMapper() {@Overridepublic Object rowMapper(ResultSet rs, Object obj)throws SQLException {Employer employer = (Employer) obj;employer = new Employer();employer.setName(rs.getString("name"));employer.setBirthday(rs.getDate("birthday"));employer.setSalary(rs.getFloat("salary"));return employer;}});} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return employer;}}

?

热点排行