实现对t_employees表的CRUD操作,采用commons-dbutils工具类实现如何方法

public class EmployeeDAOImpl implements EmployeeDAO{
    private QueryRunner queryRunner = new QueryRunner(JdbcUtils.getDataSource());
    //在该map集合中定义实体字段和数据库中表字段之间映射关系
    private Map<String,String> map = new HashMap<>();
    {
        map.put("FIRST_NAME","firstName");
        map.put("LAST_NAME","lastName");
    }

    @Override
    public List<Employee> list() {

        String sql = "select *from t_employees";
        try {
            List<Employee> list = queryRunner.query(sql,new BeanListHandler<Employee>(Employee.class,new BasicRowProcessor(new BeanProcessor(map))));
            return list;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public Employee findById(Integer id) {
        String sql = "select *from t_employees where employee_id=?";
        try {
            //BeanHandler implements ResultSetHandler:自动根据我们提供的类型将结果集中的数据进行封装
            Employee e = queryRunner.query(sql, new BeanHandler<Employee>(Employee.class,new BasicRowProcessor(new BeanProcessor(map))), id);
            return e;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public List<Employee> findByIds(Integer[] ids) {

        String sql = "select *from t_employees where employee_id in "+ Arrays.toString(ids).replaceAll("\\d+", "?").replace("[", "(").replace("]",")");;//(?,?,?,?)
        try {
            //BeanListHandler:自动将结果集中的数据转换成List类型
            List<Employee> e = queryRunner.query(sql, new BeanListHandler<Employee>(Employee.class,new BasicRowProcessor(new BeanProcessor(map))), ids);
            return e;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public List<Employee> findByLike(String name) {

        String sql = "select *from t_employees where first_name like ?";

        try {
            List<Employee> e = queryRunner.query(sql, new BeanListHandler<Employee>(Employee.class,new BasicRowProcessor(new BeanProcessor(map))), "%"+name+"%");
            return e;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public List<Employee> findByDepartmentName(String departmentName) {

        String sql = "select t1.* from t_employees t1 join t_departments t2 on t1.department_id=t2.department_id where t2.department_name=?";

        try {
            List<Employee> e = queryRunner.query(sql, new BeanListHandler<Employee>(Employee.class,new BasicRowProcessor(new BeanProcessor(map))), departmentName);
            return e;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    public boolean save(Employee employee) {
        boolean b = false;
        String sql = "insert into t_employees values(null,?,?,?,?,?,?,?,?,?,?);";
        try {
            Object[] parmas = {employee.getFirstName(),employee.getLastName(),employee.getEmail(),employee.getPhoneNumber(),
            employee.getHireDate(),employee.getJobId(),employee.getSalary(),employee.getComm(),employee.getManagerId(),employee.getDepartmentId()};
            int rows = queryRunner.update(sql,parmas);
            if(rows == 1){
                b = true;
            }
            return b;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return b;
    }

    @Override
    public boolean update(Employee employee) {
        boolean b = false;
        String sql = "update t_employees set first_name=?,last_name=?,email=?,phone_number=?,hire_date=?," +
                "job_id=?,salary=?,comm=?,manager_id=?,department_id=? where employee_id=?;";
        try {
            Object[] parmas = {employee.getFirstName(),employee.getLastName(),employee.getEmail(),employee.getPhoneNumber(),
                    employee.getHireDate(),employee.getJobId(),employee.getSalary(),employee.getComm(),employee.getManagerId(),employee.getDepartmentId(),
            employee.getEmployeeId()};
            int rows = queryRunner.update(sql,parmas);
            if(rows == 1){
                b = true;
            }
            return b;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return b;
    }

    @Override
    public boolean delete(Integer employeeId) {
        boolean b = false;
        String sql = "delete from t_employees where employee_id=?";
        try {
            int rows = queryRunner.update(sql,employeeId);
            if(rows == 1){
                b = true;
            }
            return b;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return b;
    }
}
public class TestEmployee {

    public static void main(String[] args) {

        EmployeeDAO dao = new EmployeeDAOImpl();
        /**
         * 1、查询当前表中所有数据,返回的是集合对象List<Employee>
              List<Employee> list();
         */
//        List<Employee> list = dao.list();
//        System.out.println(list);

        /**
         * 2、根据id查询某个对象
              Employee findById(Integer id);
         */
//        Employee e = dao.findById(100);
//        System.out.println(e);

        /**
         * 3、根据多个id查询对象
              List<Employee> findByIds(Integer[] ids);
         */
//        Integer[] arr = {100,101,102,103};
//        List<Employee> list2 = dao.findByIds(arr);
//        System.out.println(list2);

        /**
         * 4、根据用户名进行模糊查询
              List<Employee> findByLike(String name);//根据first_name
         */
//        List<Employee> list3 = dao.findByLike("K");
//        System.out.println(list3);

        /**
         * 5、根据部门名称查询
              List<Employee> findByDepartmentName(String departmentName);
         */
//        List<Employee> list4 = dao.findByDepartmentName("IT");
//        System.out.println(list4);

        /**
         * 6、添加新员工
              boolean save(Employee employee);
         */
//        Employee employee = new Employee(null,"wang","wu","12306@qq.com","95588", DateUtils.strToUtil("1999-09-09"),"SH_CLERK",10000L,0.0,1L,1L);
//        boolean flag = dao.save(employee);
//        System.out.println(flag);

        /**
         * 7、根据id修改员工
              boolean update(Employee employee);
         */
//        Employee employee = new Employee(211L,"zhao","wu","12306@qq.com","95588", DateUtils.strToUtil("1999-09-09"),"SH_CLERK",10000L,0.0,1L,1L);
//        boolean flag = dao.update(employee);
//        System.out.println(flag);

        /**
         * 8、根据id删除
         boolean delete(Integer employeeId);
         */
        boolean flag = dao.delete(211);
        System.out.println(flag);
    }
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值