Java读取接口数据并保存到数据库
2014-08-25 09:30
429 查看
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; List<String>list = new ArrayList<String>(); 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<Shi> list = new ArrayList<Shi>(); 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(List<Shi>list){//将读取的数据存储到数据库 String sql = "insert into "+ insertTable+" values(?,?,?,?)"; Shi shi = null; int size = list.size(); try { for (int i = 0; i < size; 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(); } } }http://api.dangqian.com/apidiqu2/api.asp?id=420000000000
返回的数据如下
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读取接口数据并保存到数据库
- 大数据-将MP3保存到数据库并读取出来《黑马程序员_超全面的JavaWeb视频教程vedio》day17
- Java实现头像截取裁剪后图片保存,获取的是base64数据,怎么转换为图片并保存到数据库。并读取出来。
- Java版SLG游戏开发入门[2]--数据的读取及保存
- JAVA_读取数据库数据并打成ZIP包下载
- 用C#编程从数据库中读取图片数据导进Excel文件的方法(如何从数据库中读取保存的文件,直接打开,中间不保存到本地)
- java从文件中读取数据然后插入到数据库表中
- Flex与java交互之数据库数据读取
- 将图片保存到ORACEL数据库和读取数据显示到页面
- java jsp struts2标签 从数据库中读取含有html标签的数据显示问题
- 插入数据读取数据库写入到Text文件保存
- PB 如果把PDF 转换成二进制数据保存到数据库,并读取显示
- Flex与java交互之数据库数据读取
- Flex与java数据库数据读取
- java 读取数据库数据生成excel文件
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- Flex与java交互之数据库数据读取
- Asp.Net上传文件到Access数据中,并从数据库中读取文件并保存
- Java用JDBC保存读取二进制数据
- java从文件中读取数据然后插入到数据库表中