五、入门之创建DAO层

在完成了数据库连接还有Model类的创建之后,我们需要创建一个DAO层,来时间对数据的增删改查,将增删改查抽象成一个个函数。

package util;

import employee.emp;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class jdbcDAO {
    public static void insert(emp employee) {
        String sql = "insert into emptable(id,name,age,sex,workyears,cometime,outtime,position) values(?,?,?,?,?,?,?,?)";//注意表名
        jdbcutil util = jdbcutil.getInstance();
        util.executeUpdate(sql, new Object[]{employee.getId(),employee.getName(),employee.getAge(),employee.getSex(),employee.getWorkyears(),
                employee.getCometime(),employee.getOuttime(),employee.getPosition()});
    }

    public static void delete(int id) {
        String sql = "delete from emptable where id = ?";
        jdbcutil util = jdbcutil.getInstance();
        util.executeUpdate(sql, new Object[]{id});
    }

    public static emp select(int Id) {
        String sql = "select * from emptable where id = ?";
        jdbcutil util = jdbcutil.getInstance();
        List<Object> tmp = util.excuteQuery(sql, new Object[]{Id});
        HashMap<String, Object> map;
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
        emp employee;
        int id;
        String name;
        int age;
        String sex;
        int years;
        String comdate;
        String outdate;
        String duty;
        for (Object obj : tmp) {
            map = (HashMap<String, Object>) obj;
            id = (int) map.get("id");
            name = (String) map.get("name");
            age = (Integer) map.get("age");
            sex = (String) map.get("sex");
            years = (int) map.get("workyears");
            comdate = format.format((Timestamp) (map.get("cometime")));
            outdate = format.format((Timestamp) (map.get("outtime")));
            duty = (String) map.get("position");
            employee = new emp(id, name, age , years , comdate, outdate,  duty,sex);
            employee.setId(Id);
            return employee;
        }
        return null;
    }

    public static ArrayList<emp> queryAll() {
        String sql = "select * from emptable";
        ArrayList<emp> res = new ArrayList<emp>();
        jdbcutil util = jdbcutil.getInstance();
        List<Object> tmp = util.excuteQuery(sql, null);
        HashMap<String, Object> map;
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
        emp employee;
        int id;
        String name;
        int age;
        String sex;
        int years;
        String comdate;
        String outdate;
        String duty;
//        System.out.println(tmp.size());
        for (Object obj : tmp) {
            map = (HashMap<String, Object>) obj;
            id = (int) map.get("id");
            name = (String) map.get("name");
            age = (Integer) map.get("age");
            sex = (String) map.get("sex");
            years = (int) map.get("workyears");
            comdate = format.format((Timestamp) (map.get("cometime")));
            outdate = format.format((Timestamp) (map.get("outtime")));
            duty = (String) map.get("position");
            employee = new emp(id, name, age , years , comdate, outdate,  duty,sex);
            employee.setId(id);
            res.add(employee);
        }
        return res;
    }


    public static void update(emp employee) {
        String sql = "update emptable set id = ? , name = ? , age = ? , sex = ? , workyears = ? , cometime = ? , outtime = ? , position = ? where id =  ?";
        jdbcutil util = jdbcutil.getInstance();
        util.executeUpdate(sql, new Object[]{employee.getId(),employee.getName(),employee.getAge(),employee.getSex(),employee.getWorkyears(),
                employee.getCometime(),employee.getOuttime(),employee.getPosition(),employee.getId()});
    }
}

需要注意点是,在操作是表是写死的,也就是在写sql语句的时候直接将表名写死了,这里需要注意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值