zoukankan      html  css  js  c++  java
  • 记账本,C,Github,Dao

    package dao;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    
    import entity.Category;
    import util.DBUtil;
    
    /**
     * catebory表的ORM映射
     * 
     * @author 于修彦
     *
     */
    public class CategoryDAO {
    
        public int getTotal() {
            int total = 0;
            try (Connection c = DBUtil.getConn(); Statement s = c.createStatement();) {
    
                String sql = "select count(*) from category";
    
                ResultSet rs = s.executeQuery(sql);
                while (rs.next()) {
                    total = rs.getInt(1);
                }
    
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
            return total;
        }
    
        public void add(Category category) {
    
            String sql = "insert into category(name) values(?)";
            try (Connection c = DBUtil.getConn(); PreparedStatement ps = c.prepareStatement(sql);) {
    
                ps.setString(1, category.getName());
    
                ps.execute();
    
                ResultSet rs = ps.getGeneratedKeys();
                if (rs.next()) {
                    category.setId(rs.getInt(1));
                }
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
        }
    
        public void update(Category category) {
    
            String sql = "update category set name= ? where id = ?";
            try (Connection c = DBUtil.getConn(); PreparedStatement ps = c.prepareStatement(sql);) {
    
                ps.setString(1, category.getName());
                ps.setInt(2, category.getId());
    
                ps.execute();
    
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
    
        }
    
        public void delete(int id) {
    
            try (Connection c = DBUtil.getConn(); Statement s = c.createStatement();) {
    
                String sql = "delete from category where id = " + id;
    
                s.execute(sql);
    
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
        }
    
        public Category get(int id) {
            Category category = null;
    
            try (Connection c = DBUtil.getConn(); Statement s = c.createStatement();) {
    
                String sql = "select * from category where id = " + id;
    
                ResultSet rs = s.executeQuery(sql);
    
                if (rs.next()) {
                    category = new Category();
                    String name = rs.getString(2);
                    category.setName(name);
                    category.setId(id);
                }
    
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
            return category;
        }
    
        public List<Category> list() {
            return list(0, Short.MAX_VALUE);
        }
    
        public List<Category> list(int start, int count) {
            List<Category> categorys = new ArrayList<Category>();
    
            String sql = "select * from category order by id desc limit ?,? ";
    
            try (Connection c = DBUtil.getConn(); PreparedStatement ps = c.prepareStatement(sql);) {
    
                ps.setInt(1, start);
                ps.setInt(2, count);
    
                ResultSet rs = ps.executeQuery();
    
                while (rs.next()) {
                    Category category = new Category();
                    int id = rs.getInt(1);
                    String name = rs.getString(2);
                    category.setId(id);
                    category.setName(name);
                    categorys.add(category);
                }
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
            return categorys;
        }
    
    }

    dao1

    package dao;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import entity.Config;
    import util.DBUtil;
    
    /**
     * 专门用于把Config实例与Config表进行ORM映射
     * 
     * @author 于修彦
     *
     */
    public class ConfigDAO {
        /**
         * 获取总数
         * 
         * @return
         */
        public int getTotal() {
            int total = 0;
            String sql = "select count(*) from config";
            try (Connection conn = DBUtil.getConn(); PreparedStatement ps = conn.prepareStatement(sql);) {
                ResultSet rs = ps.executeQuery();
                while (rs.next()) {
                    total = rs.getInt(1);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return total;
        }
    
        /**
         * 添加配置
         * 
         * @param config
         *            配置信息
         * @return 成功返回true,失败返回false
         */
        public boolean add(Config config) {
            String sql = "insert into config(myKey,myValue) values(?,?)";
            boolean flag = false;
            try (Connection conn = DBUtil.getConn(); PreparedStatement ps = conn.prepareStatement(sql);) {
                ps.setString(1, config.getMyKey());
                ps.setString(2, config.getMyValue());
                flag = ps.execute();
                ResultSet rs = ps.getGeneratedKeys();
                if (rs.next()) {
                    int id = rs.getInt(1);
                    config.setId(id);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return flag;
        }
    
        /**
         * 删除配置信息
         * 
         * @param config
         *            配置
         * @return 成功返回true,失败返回false
         */
        public boolean delete(Config config) {
            String sql = "delete from config where id = ?";
            boolean flag = false;
            try (Connection conn = DBUtil.getConn(); PreparedStatement ps = conn.prepareStatement(sql);) {
                ps.setInt(1, config.getId());
                flag = ps.execute();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return flag;
        }
    
        /**
         * 更新配置信息
         * 
         * @param config
         *            配置信息
         * @return 成功返回true,失败返回false
         */
        public boolean update(Config config) {
            boolean flag = false;
            String sql = "update config set myKey=?,myValue=? where id=?";
            Connection conn = DBUtil.getConn();
            try {
                PreparedStatement ps = conn.prepareStatement(sql);
                ps.setString(1, config.getMyKey());
                ps.setString(2, config.getMyValue());
                ps.setInt(3, config.getId());
                flag = ps.execute();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return flag;
        }
    
        /**
         * 通过id获取config实例
         * 
         * @param id
         * @return config实例
         */
        public Config get(int id) {
            Config config = null;
            String sql = "select * from config where id=?";
    
            try (Connection conn = DBUtil.getConn(); PreparedStatement ps = conn.prepareStatement(sql);) {
                ps.setInt(1, id);
                ResultSet rs = ps.executeQuery();
    
                if (rs.next()) {
                    config = new Config();
                    config.setId(id);
                    config.setMyKey(rs.getString("myKey"));
                    config.setMyValue(rs.getString("myValue"));
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return config;
        }
    
        /**
         * 用于分页查询
         * 
         * @param start
         *            开始id
         * @param count
         *            每页条数
         * @return config的列表
         */
        public List<Config> list(int start, int count) {
            List<Config> configs = new ArrayList<Config>();
            String sql = "select * from config order by id desc limit ?,?";
    
            try (Connection conn = DBUtil.getConn(); PreparedStatement ps = conn.prepareStatement(sql);) {
    
                ps.setInt(1, start);
                ps.setInt(2, count);
                ResultSet rs = ps.executeQuery();
    
                while (rs.next()) {
                    Config config = new Config();
                    config.setId(rs.getInt("id"));
                    config.setMyKey(rs.getString("myKey"));
                    config.setMyValue(rs.getString("myValue"));
    
                    configs.add(config);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return configs;
        }
    
        /**
         * 获取
         * 
         * @return
         */
        public List<Config> list() {
            return list(0,Short.MAX_VALUE);
        }
    
        /**
         * 通过键获取Config实例,比如预算对应的Config实例,就会通过这种方式获取: new
         * ConfigDAO().getByKey("budget");
         * 
         * @param key
         * @return config实例
         */
        public Config getByKey(String key) {
            Config config = null;
            String sql = "select * from config where myKey=?";
    
            try (Connection conn = DBUtil.getConn(); PreparedStatement ps = conn.prepareStatement(sql);) {
                ps.setString(1, key);
                ResultSet rs = ps.executeQuery();
                if (rs.next()) {
                    config = new Config();
                    config.setId(rs.getInt("id"));
                    config.setMyKey(key);
                    config.setMyValue(rs.getString("myValue"));
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
            return config;
        }
    
    }

    dao2

    package dao;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    
    import entity.Record;
    import util.DBUtil;
    import util.DateUtil;
    
    /**
     * record表的映射
     * 
     * @author 于修彦
     *
     */
    public class RecordDAO {
        /**
         * 获取总数
         * 
         * @return 记录条数
         */
        public int getTotal() {
            int total = 0;
            try (Connection c = DBUtil.getConn(); Statement s = c.createStatement();) {
    
                String sql = "select count(*) from record";
    
                ResultSet rs = s.executeQuery(sql);
                while (rs.next()) {
                    total = rs.getInt(1);
                }
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
            return total;
        }
    
        /**
         * 增加记录
         * 
         * @param record
         */
        public void add(Record record) {
    
            String sql = "insert into record values(null,?,?,?,?)";
            try (Connection c = DBUtil.getConn(); PreparedStatement ps = c.prepareStatement(sql);) {
                ps.setInt(1, record.getSpend());
                ps.setInt(2, record.getCid());
                ps.setString(3, record.getComment());
                ps.setDate(4, DateUtil.util2sql(record.getMyDate()));
    
                ps.execute();
    
                ResultSet rs = ps.getGeneratedKeys();
                if (rs.next()) {
                    int id = rs.getInt(1);
                    record.setId(id);
                }
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
        }
    
        /**
         * 更新记录
         * 
         * @param record
         */
        public void update(Record record) {
    
            String sql = "update record set spend= ?, cid= ?, comment =?, myDate = ? where id = ?";
            try (Connection c = DBUtil.getConn(); PreparedStatement ps = c.prepareStatement(sql);) {
    
                ps.setInt(1, record.getSpend());
                ps.setInt(2, record.getCid());
                ps.setString(3, record.getComment());
                ps.setDate(4, DateUtil.util2sql(record.getMyDate()));
                ps.setInt(5, record.getId());
    
                ps.execute();
    
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
    
        }
    
        /**
         * 删除记录
         * 
         * @param id
         */
        public void delete(int id) {
    
            try (Connection c = DBUtil.getConn(); Statement s = c.createStatement();) {
    
                String sql = "delete from record where id = " + id;
    
                s.execute(sql);
    
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
        }
    
        /**
         * 根据id获取记录
         * 
         * @param id
         * @return record实例
         */
        public Record get(int id) {
            Record record = null;
    
            try (Connection c = DBUtil.getConn(); Statement s = c.createStatement();) {
    
                String sql = "select * from record where id = " + id;
    
                ResultSet rs = s.executeQuery(sql);
    
                if (rs.next()) {
                    record = new Record();
                    int spend = rs.getInt("spend");
                    int cid = rs.getInt("cid");
                    String comment = rs.getString("comment");
                    Date date = rs.getDate("myDate");
    
                    record.setSpend(spend);
                    record.setCid(cid);
                    record.setComment(comment);
                    record.setMyDate(date);
                    record.setId(id);
                }
    
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
            return record;
        }
    
        /**
         * 获取所有记录
         * 
         * @return
         */
        public List<Record> list() {
            return list(0, Short.MAX_VALUE);
        }
    
        /**
         * 用于分页查询
         * 
         * @param start
         * @param count
         * @return
         */
        public List<Record> list(int start, int count) {
            List<Record> records = new ArrayList<Record>();
    
            String sql = "select * from record order by id desc limit ?,? ";
    
            try (Connection c = DBUtil.getConn(); PreparedStatement ps = c.prepareStatement(sql);) {
    
                ps.setInt(1, start);
                ps.setInt(2, count);
    
                ResultSet rs = ps.executeQuery();
    
                while (rs.next()) {
                    Record record = new Record();
                    int id = rs.getInt("id");
                    int spend = rs.getInt("spend");
                    int cid = rs.getInt("cid");
    
                    String comment = rs.getString("comment");
                    Date date = rs.getDate("myDate");
    
                    record.setSpend(spend);
                    record.setCid(cid);
                    record.setComment(comment);
                    record.setMyDate(date);
                    record.setId(id);
                    records.add(record);
                }
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
            return records;
        }
    
        /**
         * 获取某一项分类的记录列表
         * 
         * @param cid
         * @return
         */
        public List<Record> list(int cid) {
            List<Record> records = new ArrayList<Record>();
    
            String sql = "select * from record where cid = ?";
    
            try (Connection c = DBUtil.getConn(); PreparedStatement ps = c.prepareStatement(sql);) {
    
                ps.setInt(1, cid);
    
                ResultSet rs = ps.executeQuery();
    
                while (rs.next()) {
                    Record record = new Record();
                    int id = rs.getInt("id");
                    int spend = rs.getInt("spend");
    
                    String comment = rs.getString("comment");
                    Date date = rs.getDate("myDate");
    
                    record.setSpend(spend);
                    record.setCid(cid);
                    record.setComment(comment);
                    record.setMyDate(date);
                    record.setId(id);
                    records.add(record);
                }
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
            return records;
        }
    
        /**
         * 获取今天的消费记录列表
         * 
         * @return
         */
        public List<Record> listToday() {
            return list(DateUtil.getToday());
        }
    
        /**
         * 根据日期获取某一天的消费记录列表
         * 
         * @param day
         * @return
         */
        public List<Record> list(Date day) {
            List<Record> records = new ArrayList<Record>();
            String sql = "select * from record where myDate =?";
            try (Connection c = DBUtil.getConn(); PreparedStatement ps = c.prepareStatement(sql);) {
                ps.setDate(1, DateUtil.util2sql(day));
    
                ResultSet rs = ps.executeQuery();
                while (rs.next()) {
                    Record record = new Record();
                    int id = rs.getInt("id");
                    int cid = rs.getInt("cid");
                    int spend = rs.getInt("spend");
    
                    String comment = rs.getString("comment");
                    Date date = rs.getDate("myDate");
    
                    record.setSpend(spend);
                    record.setCid(cid);
                    record.setComment(comment);
                    record.setMyDate(date);
                    record.setId(id);
                    records.add(record);
                }
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
            return records;
        }
    
        /**
         * 获取本月份消费记录
         * 
         * @return
         */
        public List<Record> listThisMonth() {
            return list(DateUtil.getMonthBegin(), DateUtil.getMonthEnd());
        }
    
        /**
         * 获取从开始日期到结束日期的消费记录
         * 
         * @param start
         * @param end
         * @return
         */
        public List<Record> list(Date start, Date end) {
            List<Record> records = new ArrayList<Record>();
            String sql = "select * from record where myDate >=? and myDate <= ?";
            try (Connection c = DBUtil.getConn(); PreparedStatement ps = c.prepareStatement(sql);) {
                ps.setDate(1, DateUtil.util2sql(start));
                ps.setDate(2, DateUtil.util2sql(end));
                ResultSet rs = ps.executeQuery();
                while (rs.next()) {
                    Record record = new Record();
                    int id = rs.getInt("id");
                    int cid = rs.getInt("cid");
                    int spend = rs.getInt("spend");
    
                    String comment = rs.getString("comment");
                    Date date = rs.getDate("myDate");
    
                    record.setSpend(spend);
                    record.setCid(cid);
                    record.setComment(comment);
                    record.setMyDate(date);
                    record.setId(id);
                    records.add(record);
                }
            } catch (SQLException e) {
    
                e.printStackTrace();
            }
            return records;
        }
    
    }

    dao3

  • 相关阅读:
    字符串转换相关
    Xcode新功能
    CocoaPods使用详情及版本未更新安装报错
    Cannot create __weak reference in file using manual refs Xcode 7.3
    UIButton实现左文字右图片
    iOS App 上架流程-版本更新注意事项
    iOS App 上架流程-新版本1.0上架
    NSNotification的用法
    NScfBool转bool类型
    百度地图 移动坐标显示该坐标周围对应的信息
  • 原文地址:https://www.cnblogs.com/kmxbf2292/p/10425947.html
Copyright © 2011-2022 走看看