通过HttpClient发起Get请求,获取Json数据,然后转为java数据,然后批量保存数据库; - 血翼残飞
通过HttpClient发起Get请求,获取Json数据,然后转为java数据,然后批量保存数据库;
Json转java所需Jar包:
commons-beanutils-1.8.0.jar,commons-collections-3.2.1.jar,commons-lang-2.5.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar,json-lib-2.4.jar
下载地址:https://pan.baidu.com/s/1qHhYMDLsk95D7pYeyGTfjg 提取码:ddso
HttpClient所需Jar包:
httpclient-4.2.2.jar,httpcore-4.2.2.jar
下载地址:https://pan.baidu.com/s/1xojyZ4UqdQFSCEYHO8oYxg 提取码:1lws
1 import org.apache.http.HttpEntity; 2 import org.apache.http.HttpResponse; 3 import org.apache.http.client.ClientProtocolException; 4 import org.apache.http.client.HttpClient; 5 import org.apache.http.client.methods.HttpGet; 6 import org.apache.http.impl.client.DefaultHttpClient; 7 import org.apache.http.util.EntityUtils; 8 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.stereotype.Controller; 10 import org.springframework.web.bind.annotation.RequestMapping; 11 12 import net.sf.json.JSONArray; 13 import net.sf.json.JSONObject; 14 import net.sf.json.JsonConfig; 15 16 public String CourseList() { 17 String url = ""; 18 HttpClient httpClient = new DefaultHttpClient(); 19 HttpGet httpGet = new HttpGet(url); 20 String json = null; 21 try { 22 // 通过HttpClient Get请求返回Json数据 23 HttpResponse response = httpClient.execute(httpGet); 24 HttpEntity entity = response.getEntity(); 25 if (entity != null) { 26 json = EntityUtils.toString(entity, "UTF-8").trim(); 27 JSONObject jsonModelObject = JSONObject.fromObject(json); 28 // 通过字典值拿取实体类数据集合curPageDate 29 String model = jsonModelObject.getString("model"); 30 JSONObject jsonCurPageDataObj = JSONObject.fromObject(model); 31 // 拿取分页 当前页数据 32 String curPageData = jsonCurPageDataObj.getString("curPageData"); 33 // 转为JSONArray数组 34 JSONArray jArray = JSONArray.fromObject(curPageData); 35 // 转为java数组 36 List<?> list = JSONArray.toList(jArray, new Course(), new JsonConfig()); 37 int result = courseService.insertCourse(list); 38 if (result > 0) { 39 System.out.println("成功"); 40 } 41 } 42 } catch (ClientProtocolException e) { 43 e.printStackTrace(); 44 } catch (IOException e) { 45 e.printStackTrace(); 46 } finally { 47 httpGet.abort(); 48 } 49 return "success"; 50 }
<foreach>批量插入数据:
<insert id="insert" parameterType="map"> insert into course (courseId,courseName,courseSchool,courseTeacher,courseBrief,courseLearnNum,courseType) values <foreach collection="list" item="item" index="index" separator=","> (#{item.courseId},#{item.courseName},#{item.courseSchool},#{item.courseTeacher},#{item.courseBrief},#{item.courseLearnNum},#{item.courseType}) </foreach> </insert>