zoukankan      html  css  js  c++  java
  • java中回调函数的使用

    package com.huawei.common;

    import java.sql.ResultSet;
    import java.sql.SQLException;


    /**
    * 回调函数
    * @author Administrator
    *
    */
    public interface CallBack {

    void execute(ResultSet rs) throws SQLException;

    }

    package com.huawei.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 com.huawei.common.CallBack;
    import com.huawei.po.City;
    import com.huawei.po.Province;
    import com.huawei.utils.DBUtil;


    public class CascadeDAO2 {

    public void findAll(String sql,Object[] params,CallBack callBack){
    Connection connection = DBUtil.getConnection();

    PreparedStatement ps = null;

    ResultSet rs = null;

    try {
    ps = connection.prepareStatement(sql);
    if(params!=null && params.length>0){
    for(int i=0;i<params.length;i++){
    //设置参数
    ps.setObject(i+1, params[i]);
    }
    }
    rs = ps.executeQuery();

    //需要动态的加入一段代码执行
    callBack.execute(rs);

    } catch (SQLException e) {
    e.printStackTrace();
    }finally{
    DBUtil.close(rs,ps,connection);
    }
    }

    public List<Province> findAllProvince(){

    final List<Province> provinces = new ArrayList<Province>();
    //final String [] values = new String[]{""};
    //final String a = "123";

    //String s = "select * from city where provinceID=?"; new Object[]{}

    String sql = "SELECT * FROM province";
    this.findAll(sql, null,new CallBack() {

    @Override
    public void execute(ResultSet rs) throws SQLException {

    while(rs.next()){
    provinces.add(new Province(rs.getInt("provinceID"), rs.getString("province")));
    }
    //String abc = "lsi123";
    //values[0] = abc;
    }
    });

    return provinces;
    }

    public List<City> findCityByProvinceID(Integer id){
    final List<City> cities = new ArrayList<City>();
    String sql = "select * from city where provinceID=?";
    this.findAll(sql, new Object[]{id}, new CallBack() {

    @Override
    public void execute(ResultSet rs) throws SQLException {
    while(rs.next()){
    cities.add(new City(rs.getInt("cityID"),rs.getString("city")));
    }
    }
    });
    return cities;
    }

    public static void main(String[] args) {
    System.out.println(new CascadeDAO2().findAllProvince().size());
    System.out.println(new CascadeDAO2().findCityByProvinceID(510000).size());

    }

    }

  • 相关阅读:
    Spring的事务管理
    C#的WinForm中制作饼状图和柱状图
    .net+mssql制作抽奖程序思路及源码
    C#中简单调用MD5方法以及MD5简介
    【好文翻译】一步一步教你使用Spire.Doc转换Word文档格式
    C#调用C/C++动态库 封送结构体,结构体数组
    【好文翻译】测试必看:使用Spire.XLS来生成自动化报表!
    浅析C#基于TCP协议的SCOKET通信
    C# RSA和Java RSA互通
    C#创建windows服务搭配定时器Timer使用实例(用代码做,截图版)
  • 原文地址:https://www.cnblogs.com/hwgok/p/5854578.html
Copyright © 2011-2022 走看看