栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Dao封装

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Dao封装

一、java.util.Date和java.sql.Date的区别

从数据库中获得的结果集rs.getDate()获得的是java.sql.Date

将一个日期存储到数据库中,stmt.setDate(date) date 是java.sql.Date

java.sql.Date是java.util.Date的子类,直接把java.sql.Date当成util.Date使用

java.util.Date对象变成java.sql.Date,通过时间量转换:

new java.sql.Date(java.util.Date对象.getTime())

 二、Dao封装

1. 继承baseDao ,是所有Dao的父类,所有Dao要使用的属性,调用的执行SQL语句方法都封装在baseDao

2. 实现IDao接口,是用来实现访问数据库方法的标准的。

public interface IDao {
    
    public int insert(Entity entity);
    public int update(Entity entity);
    
    public int deleteByPrimaryKey(PK[] id);
    
    public Entity selectByPrimaryKey(PK id);
    
    public List selectByCondition(Map map);
    
    public List selectForPage(Map map,int pageNo,int pageSize);
    
    public int count(Map map);
}
public class StudentDao extends baseDao implements IDao{
    @Override
    public int insert(Student entity) {
    //拼SQL语句 全列插入
    String sql = "insert into student(id,sno,sname,birthday,tel,height,amt) values (default,?,?,?,?,?,?)";
    //准备值的Object[]
    Object[] values = new Object[]{entity.getSno(),entity.getSname(),entity.getBirthday(),entity.getTel(),entity.getHeight(),entity.getAmt()};
        //调用baseDao的insert方法
        return insert(sql,values);
        }
        @Override
    public int update(Student entity) {
        //全列的更新
        String sql = "update student set sno=?,sname=?,birthday=?,tel=?,height=?,amt=? where id=?";
        Object[] values = new Object[] {entity.getSno(),entity.getSname(),entity.getBirthday(),
        entity.getTel(),entity.getHeight(),entity.getAmt(),entity.getId()};
        return update(sql,values);
        }
    @Override
    public int deleteByPrimaryKey(Integer[] ids) {
        String sql = "delete from student where id in (";
        for(int id:ids) {
        sql += "?,";
        }
    //截取最后一个逗号
        sql = sql.substring(0, sql.length()-1);
        sql += ")";
        return delete(sql,ids);
        }
    @Override
    public Student selectByPrimaryKey(Integer id) {
        String sql = "select id,sno,sname,birthday,tel,height,amt from student where id = ?";
        Object[] values = new Object[] {id};
        return selectById(sql, values, new StudentConvert());
        }
        //{"amt1"=100}
    @Override
    public List selectByCondition(Map map) {
        String sql = "select id,sno,sname,birthday,tel,height,amt from student where 1=1 ";
        if(map.get("sno")!=null&&!"".equals(map.get("sno"))) {
        sql +=" and sno = ? ";
        }
        if(map.get("sname")!=null&&!"".equals(map.get("sname"))) {
        sql +=" and sname like ? ";
        }
        if(map.get("amt1")!=null) {
        sql +=" and amt > ?";
        }
        if(map.get("amt2")!=null) {
        sql +=" and amt < ?";
        }
        //准备Object[]
        List list = new ArrayList();
        if(map.get("sno")!=null&&!"".equals(map.get("sno"))) {
            list.add(map.get("sno"));
        }
        if(map.get("sname")!=null&&!"".equals(map.get("sname"))) {
        list.add("%"+map.get("sname")+"%");
        }
        if(map.get("amt1")!=null) {
        list.add(map.get("amt1"));
        }
        if(map.get("amt2")!=null) {
        list.add(map.get("amt2"));
        }
        return select(sql, list.toArray(), new StudentConvert());
        }
    @Override
    public List selectForPage(Map map, int pageNo, int pageSize) {
        String sql = "select id,sno,sname,birthday,tel,height,amt from student where 1=1 ";
        if(map.get("sno")!=null&&!"".equals(map.get("sno"))) {
        sql +=" and sno = ? ";
        }
        if(map.get("sname")!=null&&!"".equals(map.get("sname"))) {
        sql +=" and sname like ? ";
        }
        if(map.get("amt1")!=null) {
        sql +=" and amt > ?";
        }
        if(map.get("amt2")!=null) {
        sql +=" and amt < ?";
        }
        //拼 limit语句
        sql += "limit ?,?";
        //准备Object[]
        List list = new ArrayList();
        if(map.get("sno")!=null&&!"".equals(map.get("sno"))) {
        list.add(map.get("sno"));
        }
        if(map.get("sname")!=null&&!"".equals(map.get("sname"))) {
        list.add("%"+map.get("sname")+"%");
        }
        if(map.get("amt1")!=null) {
        list.add(map.get("amt1"));
        }
        if(map.get("amt2")!=null) {
        list.add(map.get("amt2"));
        }
        list.add((pageNo-1)*pageSize);
        list.add(pageSize);
        return select(sql, list.toArray(), new StudentConvert());
        }
    @Override
    public int count(Map map) {
        String sql = "select count(0) from student where 1=1 ";
if(map.get("sno")!=null&&!"".equals(map.get("sno"))) {
        sql +=" and sno = ? ";
        }
        if(map.get("sname")!=null&&!"".equals(map.get("sname"))) {
        sql +=" and sname like ? ";
        }
        if(map.get("amt1")!=null) {
        sql +=" and amt > ?";
        }
        if(map.get("amt2")!=null) {
        sql +=" and amt < ?";
        }
        //准备Object[]
        List list = new ArrayList();
        if(map.get("sno")!=null&&!"".equals(map.get("sno"))) {
        list.add(map.get("sno"));
        }
        if(map.get("sname")!=null&&!"".equals(map.get("sname"))) {
        list.add("%"+map.get("sname")+"%");
        }
        if(map.get("amt1")!=null) {
        list.add(map.get("amt1"));
        }
        if(map.get("amt2")!=null) {
        list.add(map.get("amt2"));
        }
        Integer result = selectById(sql,list.toArray(),new IntegerConvert());
        return result;
        }
    class StudentConvert implements Convert{
    @Override
    public Student convert(ResultSet rs) {
        Student s = new Student();
        try {
            s.setId(rs.getInt("id"));
            s.setSno(rs.getString("sno"));
            s.setTel(rs.getString("tel"));
            s.setHeight(rs.getDouble("height"));
            s.setAmt(rs.getInt("amt"));
            s.setSname(rs.getString("sname"));
            s.setBirthday(rs.getDate("birthday"));
        } catch (SQLException e) {

            e.printStackTrace();
        }
        return s;
    }
}
class IntegerConvert implements Convert{
    @Override
    public Integer convert(ResultSet rs) {

        try {
            return rs.getInt(1);
        } catch (SQLException e) {

            e.printStackTrace();
        }
        return null;
    }
}
public static void main(String[] args) {
        StudentDao dao = new StudentDao();


//dao.deleteByPrimaryKey(new Integer[]{33,34});



        }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/760823.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号