一、包结构(需要导的库)
?
二、entity
package org.e276.entity;
import java.sql.Date;
/**
* 员工实体类
* @author miao
*
*/
public class Employee {
private int id;
private String name;
private boolean sex;
private Date birthday;
private double salary;
private int departId;
public Employee() {
super();
}
public Employee(int id, String name, boolean sex, Date birthday, double salary, int departId) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.birthday = birthday;
this.salary = salary;
this.departId = departId;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isSex() {
return sex;
}
public void setSex(boolean sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public int getDepartId() {
return departId;
}
public void setDepartId(int departId) {
this.departId = departId;
}
@Override
public String toString() {
return "Employee [id=" + id + ", name=" + name + ", sex=" + sex + ", birthday=" + birthday
+ ", salary=" + salary + ", departId=" + departId + "]";
}
}
?
三、dao接口
package org.e276.dao;
import java.util.List;
import java.util.Map;
import org.e276.entity.Employee;
/**
* 实现所有的接口
*/
public interface EmployeeDao {
// 查询所有的用户,使用RowMapper可映射多行数据
public List<Employee> getAllEmployees();
// 查询薪水在3000-5000之间的有条件查询,用RowCallbackHandler,也可以用RowMapper
public List<Employee> getEmployeesBetweenSalary(double low, double up);
// 女或男职员有多少个,单值数据查询
public int getEmployeeCountBySex(boolean sex);
// 一次插入多名职员
public int[] saveEmployees(final Employee[] employees);
// 删除员工
public int deleteEmployee(int id);
// 修改 e必须是final类型
public int updateEmployee(final Employee e);
// 根据ID得到职员,查询单值对象
public Employee getEmployeeById(int id);
// 查询工资小于money的员工
public List<Employee> getEmployeeLessSalary(double money);
// 多表链接查询,封装成Map
public List<Map<String, Object>> findEmployeeInfo();
}
?
四、daoImpl实现类
package org.e276.dao.impl;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import org.e276.dao.EmployeeDao;
import org.e276.entity.Employee;
import org.e276.mapper.EmployeeMapper;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcDaoSupport;
/**
* 实现类
* @author miao
*
*/
public class EmployeeDaoImpl extends NamedParameterJdbcDaoSupport implements EmployeeDao {
/**
* 查询所有的用户,使用RowMapper可映射多行数据
*/
public List<Employee> getAllEmployees() {
return super.getJdbcTemplate().query(
"select id, name, sex, salary, birthday, depart_id from employee",
new EmployeeMapper());
}
/**
* 查询薪水在3000-5000之间的有条件查询,用RowCallbackHandler,也可以用RowMapper
*/
public List<Employee> getEmployeesBetweenSalary(double low, double up) {
return super
.getJdbcTemplate()
.query("select id, name, sex, salary, birthday, depart_id from employee where salary between ? and ?",
new EmployeeMapper(), low, up);
}
/**
* 女或男职员有多少个
*/
public int getEmployeeCountBySex(boolean sex) {
return super.getJdbcTemplate()
.queryForInt("select count(*) from employee where sex=?", sex);
}
/**
* 一次插入多名职员
*/
public int[] saveEmployees(final Employee