在完成了数据库连接还有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语句的时候直接将表名写死了,这里需要注意