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());

}

}

java中回调函数的使用的更多相关文章

  1. java中回调函数的理解

    一,案例一 "通常大家说的回调函数一般就是按照别人(李四)的定好的接口规范写,等待别人(张三)调用的函数,在C语言中,回调函数通常通过函数指针来传递:在Java中,通常就是编写另外一个类或类 ...

  2. Java中回调函数编写

    package XXX.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStr ...

  3. C++中回调函数(CallBack)的使用

    如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过. 其错误是普通的C++成员函数都隐含了一个传递函数作为参数,亦即“this”指针,C++通过传递this指针给其成员函数从而 ...

  4. java基础-回调函数(callback)

    java基础-回调函数(callback) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数 ...

  5. $.getJSON('url',function(data){}) 中回调函数不执行

    $.getJSON('url',function(data){}) 中回调函数不执行 url 中的 json 格式不正确 ,浏览器返回并没有报错 {'湖北':[114.11438,30.849429] ...

  6. 关于C++与Java中虚函数问题的读书笔记

    之前一直用C++编程,对虚函数还是一些较为肤浅的理解.可近期由于某些原因搞了下Java,发现有些知识点不熟,于是站在先驱巨人的肩上谈谈C++与Java中虚函数问题. Java中的虚函数 以下是段别人的 ...

  7. JAVA中字符串函数subString的用法小结

    本篇文章主要是对JAVA中字符串函数subString的用法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 String str; str=str.substring(int begi ...

  8. Java中的函数对象

    初次听说java中的函数对象可能,比较的陌生.可以类比着来理解一下,人们常说java中没有了指针,殊不知,java中的对象引用就是指针,有时候我们说一个对象往往指的就是这个对象的引用,也就是说基本上把 ...

  9. Windows编程中回调函数的使用心得(MFC篇)

    回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直接调用,而是在特定 ...

随机推荐

  1. easyui panel自适应浏览器宽度

    一.目标效果: 当浏览器窗口大小改变时.panel宽度始终为浏览器宽度的50%,panel高度则根据其中内容的多少而变化,横向竖向滚动条皆不出现.且不需要重新刷新浏览器或者其他js代码 兼容:chro ...

  2. ipvsadm命令介绍

    为了更好的让大家理解这份命令手册,将手册里面用到的几个术语先简单的介绍一下: 1,virtual-service-address:是指虚拟服务器的ip 地址 2,real-service-addres ...

  3. 今天廷鹏师弟来的java建议

    如下一段获取数据代码的问题: public Serializable getById(Serializable id) throws BaseBusinessException {  if (id = ...

  4. 福大软工 · 第十一次作业 - Alpha 事后诸葛亮

    拖鞋旅游队团队事后诸葛亮会议 前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10054510.html 时间:2018-12-1 20:00 地 ...

  5. IIS经典模式与集成模式

    在IIS7.0中Web应用程序有两种配置形式:经典和集成 经典模式 经典模式是为了与之前的版本兼容,使用ISAPI扩展来调用ASP.NET运行库,原先运行于IIS6.0下的Web应用程序迁移到IIS7 ...

  6. /sys/kernel/debug/usb/devices解析

    1.概述 USB设备通过debugfs导出/sys/kernel/debug/usb/devices显示内核已知的每个USB设备及其配置描述符.此文件对于用户模式下的状态查看工具非常方便,可以扫描文本 ...

  7. Java移位运算符 “

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zjx409/article/details/37569055 左移运算符(<<) 基本使 ...

  8. xshell 用密钥登录服务器

    来源:http://coolnull.com/3510.html 说明:ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式 ...

  9. 你正在从一个声称代表如下的证书颁发机构安装证书 alipay truest network,希望能知道程序是怎么实现的或相关资料

    你正在从一个声称代表如下的证书颁发机构安装证书 alipay truest network,希望能知道程序是怎么实现的或相关资料

  10. windows server 2008 HPC Edtion激活教程

    KMS激活指南 本服务器根据俄罗斯KMS服务器VMWARE架设,不受时间限制 KMS激活支持的Windows版本:Windows 2008, Windows 2008 R2 全系列产品Vista, W ...