public class Test05GetData {

//guo sheng shi xian zhen cun的表结构完全一样。数据全部读取完毕之后再将数据整合到同一张表中

protected static String parentTable = "sheng";// 父表

protected static String insertTable = "shi";// 字表

protected static String daima = "";// 代码

protected static int dataCount = 0;// 计数器

protected static int totalData = 0;// 父表总记录数

protected static Connection connection = null;

protected static Statement statement = null;

protected static ResultSet resultSet = null;

public static void main(String[] args) {

connection = DBConnection.getOracleConnection();

statement = null;

resultSet = null;

Listlist = new ArrayList();

try {

statement = connection.createStatement();

resultSet = statement.executeQuery("select * from " + parentTable);

while (resultSet.next()) {

totalData ++;

daima = resultSet.getString("daima");

list.add(daima);

}

System.out.println("tatalData:" + totalData);

} catch (Exception e) {

e.printStackTrace();

}

for (Iterator iterator = list.iterator(); iterator.hasNext();) {

String string = (String) iterator.next();

dataCount ++;

double x1 = ((double)dataCount/(double)totalData)*100.0 ;

System.out.print("第" + dataCount + "个父项,");

System.out.println(String.format("%.2f", x1) + "%");//显示完成的百分比

query(string);

}

try {

if (resultSet != null) {

resultSet.close();

}

if (statement != null) {

statement.close();

}

if(connection != null){

connection.close();

}

} catch (Exception e) {

e.printStackTrace();

}

}

public static void query(String daima) {

String url = "http://api.dangqian.com/apidiqu2/api.asp?id=" + daima;

StringBuilder stringBuilder = new StringBuilder();

URL oracle;

try {

oracle = new URL(url);

URLConnection yc = oracle.openConnection();

BufferedReader br = new BufferedReader(new InputStreamReader(yc.getInputStream()));

String inputLine = null;

while ((inputLine = br.readLine()) != null) {

stringBuilder.append(inputLine);

}

br.close();

String str = stringBuilder.toString();

StringBuffer stringBuffer = new StringBuffer(str);

stringBuffer.delete(0, 9);

stringBuffer.deleteCharAt(stringBuffer.length() - 1);

System.out.println(stringBuffer);

JSONObject jsonobject = JSONObject.fromObject(stringBuffer.toString());

JSONObject jsonobject1 = (JSONObject) jsonobject.get("list");

// System.out.println(jsonobject1);

List list = new ArrayList();

for (Iterator iter = jsonobject1.keys(); iter.hasNext();) {

String key = (String) iter.next();

Shi shi = (Shi) JSONObject.toBean(

(JSONObject) jsonobject1.get(key), Shi.class);

list.add(shi);

}

saveData(list);

} catch (Exception e) {

e.printStackTrace();

}

}

protected static void saveData(Listlist){//将读取的数据存储到数据库

String sql = "insert into "+ insertTable+" values(?,?,?,?)";

Shi shi = null;

int size = list.size();

try {

for (int i = 0; i

shi = list.get(i);

sql = "insert into "+ insertTable+" (zidi,diming,daima,dengji)values("+shi.getZidi()+",‘"+shi.getDiming()+"‘,‘"+shi.getDaima()+"‘,"+shi.getDengji()+")";

statement.execute(sql);

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

返回的数据如下callback({ "is_login":1, "site":"中国行政区划api", "url":"http://api.dangqian.com/apidiqu2/", "jieshao":"省市县乡村五级行政区划地址信息库", "idengji":"2", "idiming":"湖北", "idaima":"420000000000", "diming1":"中国", "daima1":"000000000000", "diming2":"湖北省", "daima2":"420000000000", "diming3":"", "daima3":"", "diming4":"", "daima4":"", "diming5":"", "daima5":"", "diming6":"", "daima6":"", "zidi":14, "banben":"2012", "zhizao":"王建然", "qq":"250247045", "riqi":"2013-4-21 16:08:25", "shike":"2014-8-25 9:29:46", "id":"17", "list":{ "wjr1":{"dengji":"3","diming":"武汉市","daima":"420100000000","zidi":13}, "wjr2":{"dengji":"3","diming":"黄石市","daima":"420200000000","zidi":6}, "wjr3":{"dengji":"3","diming":"十堰市","daima":"420300000000","zidi":8}, "wjr4":{"dengji":"3","diming":"宜昌市","daima":"420500000000","zidi":13}, "wjr5":{"dengji":"3","diming":"襄阳市","daima":"420600000000","zidi":9}, "wjr6":{"dengji":"3","diming":"鄂州市","daima":"420700000000","zidi":3}, "wjr7":{"dengji":"3","diming":"荆门市","daima":"420800000000","zidi":5}, "wjr8":{"dengji":"3","diming":"孝感市","daima":"420900000000","zidi":7}, "wjr9":{"dengji":"3","diming":"荆州市","daima":"421000000000","zidi":8}, "wjr10":{"dengji":"3","diming":"黄冈市","daima":"421100000000","zidi":10}, "wjr11":{"dengji":"3","diming":"咸宁市","daima":"421200000000","zidi":6}, "wjr12":{"dengji":"3","diming":"随州市","daima":"421300000000","zidi":3}, "wjr13":{"dengji":"3","diming":"恩施土家族苗族自治州","daima":"422800000000","zidi":8}, "wjr14":{"dengji":"3","diming":"省直辖县级行政区划","daima":"429000000000","zidi":4} } })

只需要解析出其中的list部分存储到数据库即可。

以上内容仅供技术分享,涉及到的任何法律问题与本人及51cto无关。请勿用于商业用途!

原文:http://shamrock.blog.51cto.com/2079212/1544270

java 数据库数据写接口_Java读取接口数据并保存到数据库相关推荐

  1. java读取字节流设置字节数组长度_java读取流数据时,字节缓存数组,第一次读取时,是否读满,才进行下次读取??...

    使用缓存字节数组读取java字节流时,第一次读取是,读满缓存字节数组大小,才进行下次读取,还是随机读一个小于数组大小的值,再进行下次读取??? 读取本地文件时,首次读取读满整个字节数组,在进行下次读取 ...

  2. java8接口写静态方法_Java 8接口更改–静态方法,默认方法

    java8接口写静态方法 Java 8 interface changes include static methods and default methods in interfaces. Prio ...

  3. java supplier接口_Java函数式接口Supplier接口实例详解

    这篇文章主要介绍了Java函数式接口Supplier接口实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 JDK提供了大量常用的函数式接口以丰 ...

  4. java的iterator接口_java Iterator接口和LIstIterator接口分析_java_脚本之家

    java  Iterator接口和LIstIterator接口分析 目录 1.Iterator接口 2.ListIterator 3.Iterator和ListIterator的区别 正文 在继续看A ...

  5. Java集合迭代器原理图解_Java Iterator接口遍历单列集合迭代器原理详解

    这篇文章主要介绍了Java Iterator接口遍历单列集合迭代器原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Iterator接口概述 ...

  6. java future接口_java Future 接口介绍

    在Java中,如果需要设定代码执行的最长时间,即超时,可以用Java线程池ExecutorService类配合Future接口来实现. Future接口是Java标准API的一部分,在java.uti ...

  7. java工厂到接口_Java基础——接口简单工厂

    声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 一.接口 1.接口只做规范和声明不做实现: 2.java中类 ...

  8. java json 中文_java读取json数据中文乱码解决

    java读取json数据出现乱码的代码:(推荐:java视频教程)//从json文件中读取数据 StringBuffer stringBuffer = new StringBuffer(); try ...

  9. interface接口_Java程序设计--接口interface(笔记)

    有时必须从几个类中派生出一个子类,继承它们所有的属性和方法.但是,Java不支持多重继承.有了接口,就可以得到多重继承的效果. 有时必须从几个类中抽取出一些共同的行为特征,而它们之间又没有继承关系,仅 ...

最新文章

  1. 【计算机视觉】EmguCV学习笔记(1)Hello World
  2. 【c语言】输入天数,求这天是全年的第几周的第几天
  3. [转]搞ACM的你伤不起(转自Roba大神)
  4. 用WPS表格轻松设计工资条
  5. (初级)数字信号处理目录(不只是目录)
  6. ELK菜鸟手记 (三) - X-Pack权限控制之给Kibana加上登录控制以及index_not_found_exception问题解决
  7. 卫星轨道推演计算相关知识点总结(含欧拉角、旋转矩阵、及各坐标系转化等)
  8. 【网络安全】Penelope:一款功能强大的Shell处理工具
  9. 两周的时间教会我,要低头做人(jQuery实现京东购物车)
  10. quartz配置_基于spring-boot 2.x +quartz 的CRUD任务管理系统
  11. myeclipse试用小记----Hibernate多对一双向关联(2)
  12. 漫画:Integer 竟然有 4 种比较方法?
  13. 《Ext JS高级程序设计》节选:在CRUD操作中restful的设置以及使用Ext.Direct的问题...
  14. 目录下文件过多无法删除
  15. Uncaught Error: Bootstrap tooltips require Tether (http://github.hubspot.com/tether/)
  16. VB 单击ListView控件某列表头进行排序
  17. 2022-2027年中国OLED显示面板行业发展监测及投资战略研究报告
  18. 来了!Android应用市场64位应用策略
  19. 免费录屏软件Captura下载安装及分享
  20. 解决U盘文件变成快捷方式的最佳方法

热门文章

  1. 3DSlicer12:风格准则
  2. VTK修炼之道78:交互与拾取_点拾取
  3. 封装SQLDMO操作的类
  4. STM32寄存器与输入捕获
  5. C++中函数的重载和函数指针排序大全
  6. 数据库连接报错:Listener refused the connection with the following error: ORA-12505 的解决方法
  7. 3D数学基础:图形与游戏开发---随笔五
  8. 【快乐水题】997. 找到小镇的法官
  9. 【♻️markdown之一次编写,到处使用♻️】markdown文件转word
  10. 抽象类调用自己的抽象方法,实现来自子类