<?xml version="1.0" encoding="utf-8" ?> <GeocoderSearchResponse> <status>0</status> <result> <location> <lat>39.983424071404</lat> <lng>116.322987</lng> </location> <formatted_address>北京市海淀区中关村大街27号1101-08室</formatted_address> <business>人民大学,中关村,苏州街</business> <addressComponent> <streetNumber></streetNumber> <street>中关村大街</street> <district>海淀区</district> <city>北京市</city> <province>北京市</province> </addressComponent> <cityCode>131</cityCode> <pois> <poi> <addr>中关村西区南侧(中关村科技园区内)</addr> <distance>0.050000</distance> <name>中关村大厦</name> <poiType>办公大厦,商务大厦</poiType> <tel>(010)82856666</tel> <zip>100000</zip> <point> <x>116.32298658484</x> <y>39.983423843929</y> </point> </poi> <poi> <addr>中关村大街27号</addr> <distance>0.050000</distance> <name>眉州东坡酒楼中关村店</name> <poiType>中餐馆,餐饮</poiType> <tel>(010)82856948</tel> <zip></zip> <point> <x>116.32298658484</x> <y>39.983423843929</y> </point> </poi> <poi> <addr>中关村大街27号</addr> <distance>0.050000</distance> <name>中国人民财产保险中关村营业部</name> <poiType>中国人民财产保险,保险公司,金融</poiType> <tel>(010)82856779</tel> <zip>100000</zip> <point> <x>116.32298658484</x> <y>39.983423843929</y> </point> </poi> <poi> <addr>北京市海淀区</addr> <distance>94.432081</distance> <name>光合作用书房</name> <poiType>图书音像,购物</poiType> <tel></tel> <zip></zip> <point> <x>116.32239334388</x> <y>39.983890240676</y> </point> </poi> <poi> <addr>中关村大街27号</addr> <distance>42.195731</distance> <name>建行中关村支行</name> <poiType>中国建设银行,银行,金融</poiType> <tel></tel> <zip>100000</zip> <point> <x>116.32292037972</x> <y>39.983711118168</y> </point> </poi> <poi> <addr>北京市海淀区</addr> <distance>62.342644</distance> <name>海淀医院-激光整形美容部</name> <poiType>美容美发,生活服务</poiType> <tel></tel> <zip></zip> <point> <x>116.32317954086</x> <y>39.98301950182</y> </point> </poi> <poi> <addr>中关村大街19号新中关购物中心1楼</addr> <distance>112.983688</distance> <name>星巴克新中关店</name> <poiType>星巴克,咖啡厅,休闲餐饮,餐饮</poiType> <tel>(010)82486056</tel> <zip></zip> <point> <x>116.32218215226</x> <y>39.983899777278</y> </point> </poi> </pois> </result> </GeocoderSearchResponse>
从xml可以分析成几个实体类
纯粹的解析
package com.app.duapp; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import com.app.common.AppDbUtil; import com.app.entity.duapp.Address; import com.app.entity.duapp.Geocoder; import com.app.entity.duapp.Location; import com.app.entity.duapp.Point; import com.app.entity.duapp.Pois; /** * @author liangjilong */ @SuppressWarnings("all") public class Deocoder { public static void main(String[] args)throws Exception { String url = "http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1"; readXml(url); } /** * * @param url xml地址 * @return */ public static void readXml(String url) { List<Geocoder> list=new ArrayList<Geocoder>(); try { SAXReader reader = new SAXReader(); Document document =reader.read(url);//如果是本地的xml就new File(filename); Element root = document.getRootElement();//获取根节点 System.out.println((root.elementText("status")));//状态-->第一个大节点 Iterator<Element> iter = root.elementIterator("result");//第二大节点 for (Iterator iter1 =iter; iter1.hasNext();) { Element Node1=(Element)iter1.next(); Element locationNode=Node1.element("location");//location节点 System.out.println(locationNode.elementText("lat"));//纬度 String lng=locationNode.elementText("lng");//经度 String format_addr=Node1.elementText("formatted_address"); String business=Node1.elementText("business"); Address address=new Address(); Element addressComponent=Node1.element("addressComponent");//addressComponent节点 if(addressComponent.elementText("streetNumber")!=""&&addressComponent.elementText("streetNumber")!=null) { address.setStreetNumber(addressComponent.elementText("streetNumber")); } System.out.println(addressComponent.elementText("street")); System.out.println(addressComponent.elementText("district")); System.out.println(addressComponent.elementText("city")); System.out.println(addressComponent.elementText("province")); System.out.println(Node1.elementText("cityCode"));//cityCode节点 Element poisNode=Node1.element("pois");//pois节点 for (Iterator iter2 = poisNode.elementIterator(); iter2.hasNext();) { Element poisNodes=(Element)iter2.next(); System.out.println(poisNodes.elementText("addr")); System.out.println(poisNodes.elementText("distance")); System.out.println(poisNodes.elementText("name")); System.out.println(poisNodes.elementText("tel")); if(poisNodes.elementText("zip")!=""&&poisNodes.elementText("zip")!=null) { System.out.println(poisNodes.elementText("zip")); } Element point=poisNodes.element("point");//point节点 System.out.println(point.elementText("x")); System.out.println(point.elementText("y")); } } } catch (Exception e) { e.printStackTrace(); } } }
Jsoup的解析xml
package com.app.duapp; import java.util.Iterator; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; /** * @author liangjilong */ @SuppressWarnings("all") public class JsoupXml { public static void main(String[] args)throws Exception { String url = "http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1"; //readXml(url); JsoupReadXml(url); } /** * * @param url xml地址 * @return */ public static void readXml(String url) throws Exception{ Document doc=Jsoup.connect(url).get(); Elements status=doc.select("status");//status节点 for(Element st:status){ System.out.println(st.text());//获取值 } Elements lats=doc.select("lat");//lat节点 for(Element lat:lats){ System.out.println(lat.text()); } Elements lngs=doc.select("lng");//lng节点 for(Element lng:lngs){ System.out.println(lng.text()); } Elements formatted_address=doc.select("formatted_address");//formatted_address节点 for(Element a:formatted_address){ System.out.println(a.text()); } Elements businesss=doc.select("business");//business节点 for(Element b:businesss){ System.out.println(b.text()); } Elements streetNumbers=doc.select("streetNumber");//streetNumber节点 for(Element sn:streetNumbers){ System.out.println(sn.text()); } Elements streets=doc.select("street");//street节点 for(Element st:streets){ System.out.println(st.text()); } Elements districts=doc.select("district");//district节点 for(Element d:districts){ System.out.println(d.text()); } Elements citys=doc.select("city");//city节点 for(Element c:citys){ System.out.println(c.text()); } Elements provinces=doc.select("province");//province节点 for(Element p:provinces){ System.out.println(p.text()); } Elements cityCodes=doc.select("cityCode");//cityCode节点 for(Element cc:cityCodes){ System.out.println(cc.text()); } Elements addrs=doc.select("addr");//addr节点 for(Element add:addrs){ System.out.println(add.text()); } Elements distances=doc.select("distance");//distance节点 for(Element d:distances){ System.out.println(d.text()); } Elements names=doc.select("name");//name节点 for(Element n:names){ System.out.println(n.text()); } Elements poiTypes=doc.select("poiType");//poiType节点 for(Element pt:poiTypes){ System.out.println(pt.text()); } Elements tels=doc.select("tel");//tel节点 for(Element t:tels){ System.out.println(t.text()); } Elements zips=doc.select("zip");//zip节点 for(Element z:zips){ System.out.println(z.text()); } Elements xs=doc.select("x");//zip节点 for(Element x:xs){ System.out.println(x.text()); } Elements ys=doc.select("y");//zip节点 for(Element y:ys){ System.out.println(y.text()); } } /** * 用Jsoup去解析xml * @param url */ private static void JsoupReadXml(String url) throws Exception{ org.jsoup.nodes.Document doc=Jsoup.connect(url).get(); if(doc!=null) { Elements pois=doc.select("poi");//获取到poi节点 for(org.jsoup.nodes.Element poi:pois){ String addr=poi.getElementsByTag("addr").text().trim(); String distance=poi.getElementsByTag("distance").text().trim(); String name=poi.getElementsByTag("name").text().trim(); String poiType=poi.getElementsByTag("poiType").text().trim(); String tel=poi.getElementsByTag("tel").text().trim(); String zip=poi.getElementsByTag("zip").text().trim(); String x=poi.getElementsByTag("x").text().trim(); String y=poi.getElementsByTag("y").text().trim(); Elements comps=doc.select("addressComponent"); for (org.jsoup.nodes.Element comp:comps) { String streetNumber=comp.getElementsByTag("streetNumber").text().trim(); String street=comp.getElementsByTag("street").text().trim(); String district=comp.getElementsByTag("district").text().trim(); String city=comp.getElementsByTag("city").text().trim(); String province=comp.getElementsByTag("province").text().trim(); } String lat=doc.select("lat").text().trim(); String lng=doc.select("lng").text().trim(); String formatted_address=doc.select("formatted_address").text().trim(); String business=doc.select("business").text().trim(); } } } }
几个实体
package com.app.entity.duapp; import java.io.Serializable; public class Address implements Serializable{ private String streetNumber; private String street; private String district; private String city; private String province; private String cityCode; public String getCityCode() { return cityCode; } public void setCityCode(String cityCode) { this.cityCode = cityCode; } public String getStreetNumber() { return streetNumber; } public void setStreetNumber(String streetNumber) { this.streetNumber = streetNumber; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } public String getDistrict() { return district; } public void setDistrict(String district) { this.district = district; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getProvince() { return province; } public void setProvince(String province) { this.province = province; } }
封装型解析:
package com.app.duapp; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; import com.app.common.AppDbUtil; import com.app.entity.duapp.Address; import com.app.entity.duapp.Geocoder; import com.app.entity.duapp.Location; import com.app.entity.duapp.Point; import com.app.entity.duapp.Pois; @SuppressWarnings("all") public class DeocoderDao { /** * * @param url xml地址 * @return */ public List<Geocoder> readXml(String url) { List<Geocoder> list=new ArrayList<Geocoder>(); try { SAXReader reader = new SAXReader(); Document document =reader.read(url);//如果是本地的xml就new File(filename); Element root = document.getRootElement();//获取根节点 Geocoder g=new Geocoder(); g.setStatus(root.elementText("status"));//状态-->第一个大节点 Iterator<Element> iter = root.elementIterator("result");//第二大节点 for (Iterator iter1 =iter; iter1.hasNext();) { Element Node1=(Element)iter1.next(); Location location=new Location(); List<Location> listLocations=new ArrayList<Location>(); Element locationNode=Node1.element("location");//location节点 String lat=locationNode.elementText("lat");//纬度 String lng=locationNode.elementText("lng");//经度 String format_addr=Node1.elementText("formatted_address"); String business=Node1.elementText("business"); location.setLat(lat); location.setLng(lng); location.setBusiness(business); location.setFormattedAddress(format_addr); listLocations.add(location);//把location对象丢进集合里面 g.setLocations(listLocations);//把集合丢进集合里面 List<Address> listAddress=new ArrayList<Address>(); Address address=new Address(); Element addressComponent=Node1.element("addressComponent");//addressComponent节点 if(addressComponent.elementText("streetNumber")!=""&&addressComponent.elementText("streetNumber")!=null) { address.setStreetNumber(addressComponent.elementText("streetNumber")); } address.setStreet(addressComponent.elementText("street")); address.setDistrict(addressComponent.elementText("district")); address.setCity(addressComponent.elementText("city")); address.setProvince(addressComponent.elementText("province")); address.setCityCode(Node1.elementText("cityCode"));//cityCode节点 listAddress.add(address);//把address对象丢进集合里面 g.setAddress(listAddress);//把集合丢进集合里面 Element poisNode=Node1.element("pois");//pois节点 for (Iterator iter2 = poisNode.elementIterator(); iter2.hasNext();) { Pois pois=new Pois(); List<Pois> listPois=new ArrayList<Pois>(); Element poisNodes=(Element)iter2.next(); pois.setAddr(poisNodes.elementText("addr")); pois.setDistance(poisNodes.elementText("distance")); pois.setName(poisNodes.elementText("name")); pois.setTel(poisNodes.elementText("tel")); if(poisNodes.elementText("zip")!=""&&poisNodes.elementText("zip")!=null) { pois.setZip(poisNodes.elementText("zip")); } Element point=poisNodes.element("point");//point节点 Point p=new Point(); List<Point> listPoints=new ArrayList<Point>(); p.setX(point.elementText("x")); p.setY(point.elementText("y")); listPoints.add(p);//point pois.setPoints(listPoints); listPois.add(pois);//把对象pois丢到集合 g.setPois(listPois);//把集合丢到集合 } list.add(g); } } catch (Exception e) { e.printStackTrace(); } return list; } /** * 保存 */ public static int batchsSaveData(List<Geocoder> list) { int index=0; String sqls[]=new String[list.size()];//多条SQL for (int i = 0; i < list.size(); i++) { StringBuffer buffer=new StringBuffer(); Geocoder g=(Geocoder) list.get(i); String statue=g.getStatus(); List<Location> listLocations=g.getLocations();//Locations List<Address> listAddress=g.getAddress();//Address List<Pois> listPois=g.getPois();//Pois for (Iterator iterator1 = listLocations.iterator(); iterator1.hasNext();) { Location location = (Location) iterator1.next(); String lat=location.getLat(); String lng=location.getLng(); String business=location.getBusiness(); String formattedAddress=location.getFormattedAddress(); for (Iterator iterator2 = listAddress.iterator(); iterator2.hasNext();) { Address addr = (Address) iterator2.next(); String city=addr.getCity(); String cityCode=addr.getCityCode(); String district=addr.getDistrict(); String province=addr.getProvince(); String street=addr.getStreet(); String StreetNumber=addr.getStreetNumber(); for (Iterator iterator3 = listPois.iterator(); iterator3.hasNext();) { Pois p = (Pois) iterator3.next(); String add=p.getAddr(); String distance=p.getDistance(); String name=p.getName(); String poiType=p.getPoiType(); String tel=p.getTel(); String zip=p.getZip(); List<Point> listPoints=p.getPoints(); for (Iterator iterator4 = listPoints.iterator(); iterator4.hasNext();) { Point point = (Point) iterator4.next(); String x=point.getX(); String y=point.getY(); buffer.append("Insert into GeocoderSearch(status,lat,lng,formatted_address,business,streetNumber,street,district,city,province,cityCode,addr,distance,name,poiType,tel,zip,x,y) values("); buffer.append("'"+statue+"',").append("'"+lat+"',"); buffer.append("'"+lng+"',").append("'"+formattedAddress+"',"); buffer.append("'"+business+"',").append("'"+StreetNumber+"',"); buffer.append("'"+street+"',").append("'"+district+"',"); buffer.append("'"+city+"',").append("'"+province+"',"); buffer.append("'"+cityCode+"',").append("'"+add+"',"); buffer.append("'"+distance+"',").append("'"+name+"',"); buffer.append("'"+poiType+"',").append("'"+tel+"',"); buffer.append("'"+zip+"',").append("'"+x+"',").append("'"+y+"'"); buffer.append(")"); String sql=buffer.toString(); sqls[index]=sql; } } } } index++; } int rows=AppDbUtil.getInstance().supportsBatch(sqls); return rows; } }
package com.app.entity.duapp; import java.io.Serializable; import java.util.ArrayList; import java.util.List; public class Pois implements Serializable{ private String addr; private String distance; private String name; private String poiType; private String tel; private String zip; private List<Point> points=new ArrayList<Point>(); public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } public String getDistance() { return distance; } public void setDistance(String distance) { this.distance = distance; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPoiType() { return poiType; } public void setPoiType(String poiType) { this.poiType = poiType; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } public String getZip() { return zip; } public void setZip(String zip) { this.zip = zip; } public List<Point> getPoints() { return points; } public void setPoints(List<Point> points) { this.points = points; } }
package com.app.entity.duapp; import java.io.Serializable; public class Point implements Serializable{ private String x; private String y; public String getX() { return x; } public void setX(String x) { this.x = x; } public String getY() { return y; } public void setY(String y) { this.y = y; } }
package com.app.entity.duapp; import java.io.Serializable; public class Location implements Serializable{ private String lat;//纬度 private String lng;//经度 private String formattedAddress;//经度 private String business;//经度 public String getLat() { return lat; } public void setLat(String lat) { this.lat = lat; } public String getLng() { return lng; } public void setLng(String lng) { this.lng = lng; } public String getFormattedAddress() { return formattedAddress; } public void setFormattedAddress(String formattedAddress) { this.formattedAddress = formattedAddress; } public String getBusiness() { return business; } public void setBusiness(String business) { this.business = business; } }
package com.app.entity.duapp; import java.io.Serializable; import java.util.ArrayList; import java.util.List; public class Geocoder implements Serializable{ private String status; private List<Location> locations=new ArrayList<Location>(); private List<Address> address=new ArrayList<Address>(); private List<Pois> pois=new ArrayList<Pois>(); public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public List<Location> getLocations() { return locations; } public void setLocations(List<Location> locations) { this.locations = locations; } public List<Address> getAddress() { return address; } public void setAddress(List<Address> address) { this.address = address; } public List<Pois> getPois() { return pois; } public void setPois(List<Pois> pois) { this.pois = pois; } }
连接数据库:
package com.app.common; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import org.hibernate.SQLQuery; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; @SuppressWarnings("all") public class AppDbUtil extends HibernateDaoSupport{ private static String Driver=PropertyUtil.getProperty("jdbc.driver"); private static String url=PropertyUtil.getProperty("jdbc.url"); private static String url1=PropertyUtil.getProperty("jdbc.url"); private static String username=PropertyUtil.getProperty("jdbc.username"); private static String password=PropertyUtil.getProperty("jdbc.password"); private static AppDbUtil instance=null; private static Connection con = null; private static Statement stmt = null; private static PreparedStatement pst = null; private static ResultSet rs = null; /** * Single * @return */ public static AppDbUtil getInstance(){ if (instance == null) { synchronized (AppDbUtil.class) { instance = new AppDbUtil(); } } return instance; } /** * 通过过文件处理流加载配置,读key获取value值 * @return */ public static Connection getConnection() { Connection conn=null; try { Class.forName(Driver); conn=DriverManager.getConnection(url, username, password); } catch (Exception e) { e.printStackTrace(); } return conn; } /** * @return */ public static Connection getConn() { Connection conn=null; try { Class.forName(Driver); conn=DriverManager.getConnection(url1, username, password); } catch (Exception e) { e.printStackTrace(); } return conn; } /** * 调用log4通过key值去获取value值 * @return */ public static Connection getConfigConnection() { try { Class.forName(Driver); con = DriverManager.getConnection(url1, username, password); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return con; } /** * 支持批量处理delete update insert * @param sqls * @return */ public int supportsBatch(Object [] sqls){ try { con=AppDbUtil.getInstance().getConnection(); con.setAutoCommit(false); DatabaseMetaData dma=con.getMetaData(); if(dma.supportsBatchUpdates()){ stmt=con.createStatement(); for (int i = 0; i < sqls.length; i++) { stmt.addBatch(sqls[i]+""); } int [] rows=stmt.executeBatch(); con.commit(); return rows.length; }else{ //HQL或SQL for (int i = 0; i < sqls.length; i++) { SQLQuery query=this.getSession().createSQLQuery(sqls[i]+""); query.list(); } return sqls.length; } } catch (Exception e) { e.printStackTrace(); }finally{ Relesae(null, stmt, con); } return 0; } /*** * 释放资源... * @param rs * @param st * @param conn */ public static void Relesae(ResultSet rs, Statement st, Connection conn) { try { if (rs != null) rs.close(); if (st != null) st.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
package com.app.common; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.Properties; import org.apache.log4j.PropertyConfigurator; public class PropertyUtil { protected static Properties pro = null; protected static InputStream is = null; private static File file = null; private static long fileLastModified = 0L; public static synchronized Properties getInstance() { if(pro==null){ pro=new Properties(); } return pro; } /** * 初始化 */ private static void init() { URL url = PropertyUtil.class.getClassLoader().getResource( "/jdbc.properties"); file = new File(url.getFile()); fileLastModified = file.lastModified(); pro = new Properties(); load(); } /** * 加载 */ private static void load() { try { pro.load(new FileInputStream(file)); fileLastModified = file.lastModified(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 获取key * @param key * @return */ public static String getProperty(String key) { if ((file == null) || (pro == null)) { init(); } if (file.lastModified() > fileLastModified) { load(); } return pro.getProperty(key); } /** * @param key * @return */ public static String getLog4jConfigKey(String key) { String strVal = ""; String path="/jdbc.properties"; try { // is=PropertyUtil.class.getClass().getResourceAsStream(path); is = new FileInputStream(new File(path)); pro = new Properties(); pro.load(is); PropertyConfigurator.configure(pro); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } strVal = (String) pro.getProperty(key); return strVal; } }
数据库配置:jdbc.properties
#################################MYSQL############################################# jdbc.url=jdbc:mysql://localhost:3306/moa?characterEncoding=GBK jdbc.username=root jdbc.password=root jdbc.driver=com.mysql.jdbc.Driver
spring定时器配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"> <!-- 要调用的工作类 --> <bean id="duApp" class="com.app.timer.DuApp"/> <bean id="taskDuApp" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject" ref="duApp"/> <property name="targetMethod" value="doDeocoder"/> </bean> <bean id="TriggerDuApp" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref bean="taskDuApp"/> </property> <property name="cronExpression"> <!--<value>0 0 12 ? * *</value> --> <value>0 33 20 * * ?</value> </property> </bean> <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 --> <bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <!-- <ref bean="TriggerQuart"/> <ref bean="TriggerSpider"/> --> <ref bean="TriggerDuApp"/> </list> </property> </bean> </beans>
数据库脚步
-- ---------------------------- -- Table structure for `geocodersearch` -- ---------------------------- DROP TABLE IF EXISTS `geocodersearch`; CREATE TABLE `geocodersearch` ( `id` int(11) NOT NULL AUTO_INCREMENT, `lat` varchar(25) CHARACTER SET gbk DEFAULT '', `lng` varchar(25) CHARACTER SET gbk DEFAULT NULL, `formatted_address` varchar(150) CHARACTER SET gbk DEFAULT '', `business` varchar(150) DEFAULT NULL, `streetNumber` varchar(25) CHARACTER SET gbk DEFAULT '', `street` varchar(35) CHARACTER SET gbk DEFAULT '', `district` varchar(25) CHARACTER SET gbk DEFAULT '', `city` varchar(25) CHARACTER SET gbk DEFAULT '', `province` varchar(25) CHARACTER SET gbk DEFAULT '', `cityCode` varchar(25) CHARACTER SET gbk DEFAULT '', `addr` varchar(150) CHARACTER SET gbk DEFAULT '', `distance` varchar(150) CHARACTER SET gbk DEFAULT '', `name` varchar(150) CHARACTER SET gbk DEFAULT '', `poiType` varchar(100) CHARACTER SET gbk DEFAULT '', `tel` varchar(15) CHARACTER SET gbk DEFAULT '', `zip` varchar(15) CHARACTER SET gbk DEFAULT '', `x` varchar(25) CHARACTER SET gbk DEFAULT '', `y` varchar(25) CHARACTER SET gbk DEFAULT '', `status` varchar(5) CHARACTER SET gbk DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
web.xml配置
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring/applicationContextion.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
定时器测试类
package com.app.timer; import java.util.List; import com.app.duapp.DeocoderDao; import com.app.entity.duapp.Geocoder; /** *@DEMO:napp *@Author:jilongliang *@Date:2013-7-15 */ public class DuApp { public void doDeocoder() { DeocoderDao dao=new DeocoderDao(); String url = "http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&callback=renderReverse&location=39.983424,116.322987&output=xml&pois=1"; List<Geocoder> list=dao.readXml(url); int result=dao.batchsSaveData(list); if(result>0){ System.out.println("成功保存"+result+"条数据"); }else{ System.out.println("保存失败.."); } } }
源代码:https://github.com/jilongliang/JL_NAPP.git