EmployeeDaoImpl
package com.openlab.dao.impl;
import com.openlab.beans.Employees;
import com.openlab.dao.EmployeesDao;
import com.openlab.utils.JDBCUtils;
import com.openlab.vo.EmpVo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class EmployeesDaoImpl implements EmployeesDao {
JDBCUtils jdbcUtils = new JDBCUtils();
@Override
public List<Employees> findAll() {
return jdbcUtils.executeQuery(Employees.class,"SELECT employee_id,first_name,last_name,email,job_id,salary,commission_pct,manager_id,department_id,hiredate FROM employees;");
}
@Override
public int delelte(int id) {
return jdbcUtils.executeUpdate("DELETE FROM employees WHERE employee_id=?",id);
}
private void setCondtions(EmpVo vo,StringBuilder sql,List<Object> params ){
if(vo.getFirstname()!=null&&!"".equals(vo.getFirstname())){
sql.append(" and first_name LIKE ? ");
params.add("%"+vo.getFirstname()+"%");
}
if(vo.getLastname()!=null&&!"".equals(vo.getLastname())){
sql.append(" and last_name LIKE ? ");
params.add("%"+vo.getLastname()+"%");
}
if(vo.getMinsalary()!=null&&!"".equals(vo.getMinsalary())){
sql.append(" and salary>= ? ");
params.add(Integer.parseInt(vo.getMinsalary()));
}
if(vo.getMaxsalary()!=null&&!"".equals(vo.getMaxsalary())){
sql.append(" and salary<= ? ");
params.add(Integer.parseInt(vo.getMaxsalary()));
}
}
@Override
public int getCount(EmpVo vo) {
StringBuilder sql=new StringBuilder(" select count(*) from employees where 1 = 1 ");
List<Object> params = new ArrayList<>();
setCondtions(vo,sql,params);
Object val = jdbcUtils.findOneVal(sql.toString(),params.toArray());
System.out.println(sql.toString());
System.out.println(params);
return Integer.parseInt(val.toString());
}
@Override
public List<Employees> getPageData(int pageNo, int pageSize, EmpVo vo) {
StringBuilder sql = new StringBuilder("SELECT employee_id,first_name,last_name,email,job_id,salary,commission_pct,manager_id,department_id,hiredate FROM employees where 1=1 ");
List<Object> params = new ArrayList<>();
setCondtions(vo,sql,params);
sql.append(" limit ?,? ");
params.add((pageNo-1)*pageSize);
params.add(pageSize);
return jdbcUtils.executeQuery(Employees.class,sql.toString(),params.toArray());
}
@Override
public List<String> findNames(String keyword) {
String sql="SELECT first_name FROM employees WHERE first_name LIKE ?";
List<String> list = new ArrayList<>();
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
connection = jdbcUtils.getConnection();
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1,keyword+"%");
resultSet = preparedStatement.executeQuery();
while(resultSet.next()){
String name = resultSet.getString(1);
list.add(name);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
jdbcUtils.close(connection,preparedStatement,resultSet);
}
return list;
}
@Override
public List<Employees> findTop5() {
return jdbcUtils.executeQuery(Employees.class,"SELECT employee_id,first_name,last_name,email,job_id,salary,commission_pct,manager_id,department_id,hiredate FROM employees limit 5");
}
}
EmployeeDao
package com.openlab.dao;
import com.openlab.po.Employees;
import java.util.List;
public interface EmployeeDao {
public List<Employees> findAll();
public int delelte(int id);
}