自定义工具类分离Dao层

工具层:

public class BaseDao {
    private Connection connection;
    private PreparedStatement preparedStatement;
    private ResultSet resultSet;

    public void update(String sql, Object[] paramsValue) {
        connection = jdbcUtil.getConnection();
        try {
            preparedStatement = connection.prepareStatement(sql);
            ParameterMetaData parameterMetaData = preparedStatement.getParameterMetaData();
            int count = parameterMetaData.getParameterCount();

            if (paramsValue != null && paramsValue.length > 0) {

                for (int i = 0; i < count; i++) {
                    preparedStatement.setObject(i + 1, paramsValue[i]);
                }
            }
            int number = preparedStatement.executeUpdate();
            System.out.println(number);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public <T> List<T> query(String sql,Object[] objects,Class<T> clazz){
        try {
            List<T> list = new ArrayList<T>();
            T t = null;
            connection = jdbcUtil.getConnection();
            preparedStatement = connection.prepareStatement(sql);
            if(objects!=null &&objects.length>0) {
                for(int i=0;i<objects.length;i++) {
                    preparedStatement.setObject(i+1, objects[i]);
                }
            }
            resultSet = preparedStatement.executeQuery();
            ResultSetMetaData resultSetMetaData = resultSet.getMetaData();
            int count = resultSetMetaData.getColumnCount();
            while(resultSet.next()) {
                t = clazz.newInstance();
                for(int j=0;j<count;j++) {

                    String name = resultSetMetaData.getColumnName(j+1);
                    Object value = resultSet.getObject(name);
                    BeanUtils.setProperty(t, name, value);
                }
                list.add(t);
            }
            return list;

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            throw new RuntimeException(e);
        } finally {
            jdbcUtil.close(connection, preparedStatement, resultSet);
        }
    }
}

Dao层:

public class StudentDao extends BaseDao {

    // 增加
    public void save(Student student) {
        String sql = "INSERT INTO student(id,name) VALUE(?,?)";
        Object[] objects = { student.getId(), student.getName() };
        super.update(sql, objects);
    }

    // 根据id删除
    public void delete(int id) {
        String sql = "delete FROM student WHERE id=?";
        Object[] objects = { id };
        super.update(sql, objects);
    }

    //根据id查找
    public Student selectOne(int id) {
        String sql = "SELECT *FROM student WHERE id=?";
        Object[] objects = { id };
        List<Student> list = super.query(sql, objects, Student.class);
        return (list != null && list.size() > 0) ? list.get(0) : null;
    }

    public List<Student> selectAll(){
        String sql = "SELECT *FROM student";
        List<Student> list = super.query(sql, null, Student.class);
        return list;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值