Alex刺客

Dancing fingers, damage world. -- 舞动手指,破坏世界.

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  57 随笔 :: 0 文章 :: 76 评论 :: 0 Trackbacks
我写了一个Java类,从xml把全国地址解释出来生成SQL语句写入TXT文档. 以下是代码跟大家一起分享.

完整的SQL文档可在这里下载
下载地址:
        1.   ChinaAllCity_省市县3级-sql.tar.gz   44.9 KB (只有SQL文件)
        2.   ChinaAllCity_省市县3级-data-src.tar.gz   67.2 KB(本文全部代码)

记住喔,如果有遗漏的城市请通知道我.我会更新的.方便大家.

  1 import java.io.File;
  2 import java.io.FileNotFoundException;
  3 import java.io.FileWriter;
  4 import java.io.IOException;
  5 import java.util.HashMap;
  6 import java.util.Map;
  7 
  8 import javax.xml.parsers.DocumentBuilder;
  9 import javax.xml.parsers.DocumentBuilderFactory;
 10 import javax.xml.parsers.ParserConfigurationException;
 11 
 12 import org.w3c.dom.Document;
 13 import org.w3c.dom.NamedNodeMap;
 14 import org.w3c.dom.Node;
 15 import org.w3c.dom.NodeList;
 16 import org.xml.sax.SAXException;
 17 
 18 /**
 19  * 读取省`市`县级,地名生成SQL语句
 20  * @author alex刺客
 21  *
 22  */
 23 public class ReadLocalityXml {
 24 
 25     /** 文档对象 */
 26     private Document document = null;
 27     /** 写入文本文件对象 */
 28     private FileWriter writer = null;
 29 
 30     public ReadLocalityXml(String uri) throws ParserConfigurationException,
 31             SAXException, IOException {
 32         
 33         //得出文件路径绝对地址
 34         File xmlFile = new File(uri);
 35         System.out.println("adderss.xml路径所在:" + xmlFile.getAbsolutePath());
 36         // 是否为文件
 37         if (xmlFile.isFile()) {
 38             //文档建造工厂
 39             DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
 40             //建造文档
 41             DocumentBuilder db = dbf.newDocumentBuilder();
 42             //解析XML文件,获得DOM对象
 43             document = db.parse(xmlFile);
 44         } else {
 45             throw new FileNotFoundException("未找到adderss.xml文件!");
 46         }
 47     }
 48     
 49     /**
 50      * 
 51      * @param tagname 省 市 县
 52      * @throws IOException 
 53      */
 54     public void work(String tagname) throws IOException {
 55         //临时存储省级信息
 56         Map<String, String> map1 = new HashMap<String, String>();
 57         //临时存储市级信息
 58         Map<String, String> map2 = new HashMap<String, String>();
 59         
 60         File file = new File("./allCity.sql");
 61         //生成文件文档(SQL)
 62         file.createNewFile();
 63         //向此文档写入SQL语句
 64         writer = new FileWriter(file);
 65         //级别
 66         int level =0;
 67         //SQL编号 唯一
 68         int inumber = 0;
 69         
 70         //处理
 71         for (String tag : tagname) {
 72             level ++;
 73             NodeList nodelist = document.getElementsByTagName(tag);
 74             int nodeszie = nodelist.getLength();
 75             writer.write("-- Alex 刺客. 获取"+ tag + " 标签,此标签一共有 " + nodeszie + "个.\n");
 76             System.out.println("获取"+ tag + " 标签,此标签一共有 " + nodeszie + "个。");
 77             //当前节点的父节点name名称
 78             String parent = null;
 79             //次级编号
 80             int newValue = 1;
 81             
 82             for (int i = 0; i < nodeszie; i++) {
 83                 //生成唯一编号
 84                 inumber++;
 85                 //获取标签名为 tag 的i个节点
 86                 Node node = nodelist.item(i);
 87                 //获取节点的属性节点
 88                 NamedNodeMap nameNodeMap = node.getAttributes();
 89                 //获取属性为name的节点
 90                 Node namenode = nameNodeMap.getNamedItem("name");
 91                 //获取name节点地名
 92                 String addname = namenode.getNodeValue();
 93                 
 94                 //处理省级别
 95                 if(level == 1){
 96                     //生成编号
 97                     String value = this.getnumber(i + 1);
 98                     map1.put(addname, value);
 99                     println(inumber, level, value, "0", addname);
100                 
101                 //处理市级别
102                 }else if(level == 2) {
103                     
104                     Node parentAttrNamed = node.getParentNode().getAttributes().getNamedItem("name");
105                     if(parent == null){
106                         parent = parentAttrNamed.getNodeValue();
107                     }else if(parent != parentAttrNamed.getNodeValue()){
108                         writer.write("-- Alex_刺客说: " + parent + " 共有 " + newValue +" 个子级城市!\n\n");
109                         System.out.println(parent + " 共有 " + newValue +" 个子级城市!");
110                         newValue = 1;
111                         parent = parentAttrNamed.getNodeValue();
112                     }else{
113                         newValue ++;
114                     }
115                     
116                     String belongkey = map1.get(parent);
117                     String value = belongkey + this.getnumber(newValue);
118                     map2.put(addname, value);
119                     println(inumber, level, value, belongkey, addname);
120                     
121                 //处理县级别
122                 }else if (level == 3){
123                     Node parentAttrNamed = node.getParentNode().getAttributes().getNamedItem("name");
124                     if(parent == null){
125                         parent = parentAttrNamed.getNodeValue();
126                     }else if(parent != parentAttrNamed.getNodeValue()){
127                         writer.write("-- alex刺客说: " + parent + " 共有 " + newValue +" 个子级城市!\n\n");
128                         System.out.println(parent + " 共有 " + newValue +" 个子级城市!");
129                         newValue = 1;
130                         parent = parentAttrNamed.getNodeValue();
131                     }else{
132                         newValue ++;
133                     }
134 
135                     String belongkey = map2.get(parent);
136                     String value = belongkey + this.getnumber(newValue);
137                     println(inumber, level, value, belongkey, addname);
138                 }
139             }
140         }
141         
142         writer.flush();
143         writer.close();
144     }
145     
146     /**
147      * 输出SQL插入语句
148      * @param inumber
149      * @param level
150      * @param value
151      * @param key
152      * @throws IOException 
153      */
154     private void println(int inumber, int level, String value, String belongkey, String addname) throws IOException{
155         writer.write("insert into address(id, levels, addkey, belongkey, toponym) values ("+inumber+","+level+",'"+value+"','"+belongkey+"','"+addname+"');\n");
156         //System.out.println("insert into address(id, levels, key, toponym) values ("+inumber+","+level+",'"+key+"','"+value+"');");
157     }
158 
159     /**
160      * 生成字符串编号
161      * @param id 编号 
162      * @return 字符编号
163      */
164     public String getnumber(int id) {
165         // 新的编号
166         String newid = "";
167         // 编号样式
168         String number = "000";
169         // 编号长度
170         int idlength = Integer.toString(id).length();
171         // 编号前有几个‘0’
172         int surpluslength = number.length() - idlength;
173         while (surpluslength > 0) {
174             newid += "0";
175             surpluslength--;
176         }
177         return newid + id;
178     }
179 
180     public static void main(String[] args) {
181         try {
182             ReadLocalityXml rlx = new ReadLocalityXml("adderss.xml");
183             rlx.work("province","city","country");
184         } catch (Exception e) {
185             e.printStackTrace();
186         }
187     }
188 }
189 



生成输出结果

  1 [alex@localhost temp]$ javac ReadLocalityXml.java 
  2 [alex@localhost temp]$ java ReadLocalityXml
  3 adderss.xml路径所在:/home/alex/桌面/temp/adderss.xml
  4 获取province 标签,此标签一共有 34个。
  5 获取city 标签,此标签一共有 345个。
  6 北京市 共有 2 个子级城市!
  7 天津市 共有 2 个子级城市!
  8 河北省 共有 11 个子级城市!
  9 山西省 共有 11 个子级城市!
 10 内蒙古区 共有 12 个子级城市!
 11 辽宁省 共有 14 个子级城市!
 12 吉林省 共有 9 个子级城市!
 13 黑龙江省 共有 13 个子级城市!
 14 上海市 共有 2 个子级城市!
 15 江苏省 共有 13 个子级城市!
 16 浙江省 共有 11 个子级城市!
 17 安徽省 共有 17 个子级城市!
 18 福建省 共有 9 个子级城市!
 19 江西省 共有 11 个子级城市!
 20 山东省 共有 17 个子级城市!
 21 河南省 共有 17 个子级城市!
 22 湖北省 共有 14 个子级城市!
 23 湖南省 共有 14 个子级城市!
 24 广东省 共有 21 个子级城市!
 25 广西区 共有 14 个子级城市!
 26 海南省 共有 3 个子级城市!
 27 重庆市 共有 3 个子级城市!
 28 四川省 共有 21 个子级城市!
 29 贵州省 共有 9 个子级城市!
 30 云南省 共有 16 个子级城市!
 31 西藏区 共有 7 个子级城市!
 32 陕西省 共有 10 个子级城市!
 33 甘肃省 共有 14 个子级城市!
 34 青海省 共有 8 个子级城市!
 35 宁夏区 共有 5 个子级城市!
 36 获取country 标签,此标签一共有 3144个。
 37 北京辖区 共有 16 个子级城市!
 38 北京辖县 共有 2 个子级城市!
 39 天津辖区 共有 15 个子级城市!
 40 天津辖县 共有 3 个子级城市!
 41 石家庄市 共有 24 个子级城市!
 42 唐山市 共有 15 个子级城市!
 43 秦皇岛市 共有 8 个子级城市!
 44 邯郸市 共有 20 个子级城市!
 45 邢台市 共有 20 个子级城市!
 46 保定市 共有 26 个子级城市!
 47 张家口市 共有 18 个子级城市!
 48 承德市 共有 12 个子级城市!
 49 沧州市 共有 17 个子级城市!
 50 廊坊市 共有 11 个子级城市!
 51 衡水市 共有 12 个子级城市!
 52 太原市 共有 11 个子级城市!
 53 大同市 共有 12 个子级城市!
 54 阳泉市 共有 6 个子级城市!
 55 长治市 共有 14 个子级城市!
 56 晋城市 共有 7 个子级城市!
 57 朔州市 共有 7 个子级城市!
 58 晋中市 共有 12 个子级城市!
 59 运城市 共有 14 个子级城市!
 60 忻州市 共有 15 个子级城市!
 61 临汾市 共有 18 个子级城市!
 62 吕梁市 共有 14 个子级城市!
 63 呼和浩特市 共有 10 个子级城市!
 64 包头市 共有 10 个子级城市!
 65 乌海市 共有 4 个子级城市!
 66 赤峰市 共有 13 个子级城市!
 67 通辽市 共有 9 个子级城市!
 68 鄂尔多斯市 共有 8 个子级城市!
 69 呼伦贝尔市 共有 14 个子级城市!
 70 巴彦淖尔市 共有 8 个子级城市!
 71 乌兰察布市 共有 12 个子级城市!
 72 兴安盟 共有 6 个子级城市!
 73 锡林郭勒盟 共有 12 个子级城市!
 74 阿拉善盟 共有 3 个子级城市!
 75 沈阳市 共有 14 个子级城市!
 76 大连市 共有 11 个子级城市!
 77 鞍山市 共有 8 个子级城市!
 78 抚顺市 共有 8 个子级城市!
 79 本溪市 共有 7 个子级城市!
 80 丹东市 共有 7 个子级城市!
 81 锦州市 共有 8 个子级城市!
 82 营口市 共有 7 个子级城市!
 83 阜新市 共有 8 个子级城市!
 84 辽阳市 共有 8 个子级城市!
 85 盘锦市 共有 5 个子级城市!
 86 铁岭市 共有 8 个子级城市!
 87 朝阳市 共有 8 个子级城市!
 88 葫芦岛市 共有 7 个子级城市!
 89 长春市 共有 11 个子级城市!
 90 吉林市 共有 10 个子级城市!
 91 四平市 共有 7 个子级城市!
 92 辽源市 共有 5 个子级城市!
 93 通化市 共有 8 个子级城市!
 94 白山市 共有 7 个子级城市!
 95 松原市 共有 6 个子级城市!
 96 白城市 共有 6 个子级城市!
 97 延边自治州 共有 8 个子级城市!
 98 哈尔滨市 共有 20 个子级城市!
 99 齐齐哈尔市 共有 17 个子级城市!
100 鸡西市 共有 10 个子级城市!
101 鹤岗市 共有 9 个子级城市!
102 双鸭山市 共有 9 个子级城市!
103 大庆市 共有 10 个子级城市!
104 伊春市 共有 18 个子级城市!
105 佳木斯市 共有 12 个子级城市!
106 七台河市 共有 5 个子级城市!
107 牡丹江市 共有 11 个子级城市!
108 黑河市 共有 7 个子级城市!
109 绥化市 共有 11 个子级城市!
110 大兴安岭地区 共有 3 个子级城市!
111 上海辖区 共有 18 个子级城市!
112 上海辖县 共有 1 个子级城市!
113 南京市 共有 14 个子级城市!
114 无锡市 共有 9 个子级城市!
115 徐州市 共有 12 个子级城市!
116 常州市 共有 8 个子级城市!
117 苏州市 共有 12 个子级城市!
118 南通市 共有 9 个子级城市!
119 连云港市 共有 8 个子级城市!
120 淮安市 共有 9 个子级城市!
121 盐城市 共有 10 个子级城市!
122 扬州市 共有 8 个子级城市!
123 镇江市 共有 7 个子级城市!
124 泰州市 共有 7 个子级城市!
125 宿迁市 共有 6 个子级城市!
126 杭州市 共有 14 个子级城市!
127 宁波市 共有 12 个子级城市!
128 温州市 共有 12 个子级城市!
129 嘉兴市 共有 8 个子级城市!
130 湖州市 共有 6 个子级城市!
131 绍兴市 共有 7 个子级城市!
132 金华市 共有 10 个子级城市!
133 衢州市 共有 7 个子级城市!
134 舟山市 共有 5 个子级城市!
135 台州市 共有 10 个子级城市!
136 丽水市 共有 10 个子级城市!
137 合肥市 共有 8 个子级城市!
138 芜湖市 共有 8 个子级城市!
139 蚌埠市 共有 8 个子级城市!
140 淮南市 共有 7 个子级城市!
141 马鞍山市 共有 5 个子级城市!
142 淮北市 共有 5 个子级城市!
143 铜陵市 共有 5 个子级城市!
144 安庆市 共有 12 个子级城市!
145 黄山市 共有 8 个子级城市!
146 滁州市 共有 9 个子级城市!
147 阜阳市 共有 9 个子级城市!
148 宿州市 共有 6 个子级城市!
149 巢湖市 共有 6 个子级城市!
150 六安市 共有 8 个子级城市!
151 亳州市 共有 5 个子级城市!
152 池州市 共有 5 个子级城市!
153 宣城市 共有 8 个子级城市!
154 福州市 共有 14 个子级城市!
155 厦门市 共有 7 个子级城市!
156 莆田市 共有 6 个子级城市!
157 三明市 共有 13 个子级城市!
158 泉州市 共有 13 个子级城市!
159 漳州市 共有 12 个子级城市!
160 南平市 共有 11 个子级城市!
161 龙岩市 共有 8 个子级城市!
162 宁德市 共有 10 个子级城市!
163 南昌市 共有 10 个子级城市!
164 景德镇市 共有 5 个子级城市!
165 萍乡市 共有 6 个子级城市!
166 九江市 共有 13 个子级城市!
167 新余市 共有 3 个子级城市!
168 鹰潭市 共有 4 个子级城市!
169 赣州市 共有 19 个子级城市!
170 吉安市 共有 14 个子级城市!
171 宜春市 共有 11 个子级城市!
172 抚州市 共有 12 个子级城市!
173 上饶市 共有 13 个子级城市!
174 济南市 共有 11 个子级城市!
175 青岛市 共有 13 个子级城市!
176 淄博市 共有 9 个子级城市!
177 枣庄市 共有 7 个子级城市!
178 东营市 共有 6 个子级城市!
179 烟台市 共有 13 个子级城市!
180 潍坊市 共有 13 个子级城市!
181 济宁市 共有 13 个子级城市!
182 泰安市 共有 7 个子级城市!
183 威海市 共有 5 个子级城市!
184 日照市 共有 5 个子级城市!
185 莱芜市 共有 3 个子级城市!
186 临沂市 共有 13 个子级城市!
187 德州市 共有 12 个子级城市!
188 聊城市 共有 9 个子级城市!
189 滨州市 共有 8 个子级城市!
190 荷泽市 共有 10 个子级城市!
191 郑州市 共有 13 个子级城市!
192 开封市 共有 11 个子级城市!
193 洛阳市 共有 16 个子级城市!
194 平顶山市 共有 11 个子级城市!
195 安阳市 共有 10 个子级城市!
196 鹤壁市 共有 6 个子级城市!
197 新乡市 共有 13 个子级城市!
198 焦作市 共有 12 个子级城市!
199 濮阳市 共有 7 个子级城市!
200 许昌市 共有 7 个子级城市!
201 漯河市 共有 6 个子级城市!
202 三门峡市 共有 7 个子级城市!
203 南阳市 共有 14 个子级城市!
204 商丘市 共有 10 个子级城市!
205 信阳市 共有 11 个子级城市!
206 周口市 共有 11 个子级城市!
207 驻马店市 共有 11 个子级城市!
208 武汉市 共有 14 个子级城市!
209 黄石市 共有 7 个子级城市!
210 十堰市 共有 9 个子级城市!
211 宜昌市 共有 14 个子级城市!
212 襄樊市 共有 10 个子级城市!
213 鄂州市 共有 4 个子级城市!
214 荆门市 共有 6 个子级城市!
215 孝感市 共有 8 个子级城市!
216 荆州市 共有 9 个子级城市!
217 黄冈市 共有 11 个子级城市!
218 咸宁市 共有 7 个子级城市!
219 随州市 共有 3 个子级城市!
220 恩施自治州 共有 8 个子级城市!
221 湖北省辖单位 共有 4 个子级城市!
222 长沙市 共有 10 个子级城市!
223 株洲市 共有 10 个子级城市!
224 湘潭市 共有 6 个子级城市!
225 衡阳市 共有 13 个子级城市!
226 邵阳市 共有 13 个子级城市!
227 岳阳市 共有 10 个子级城市!
228 常德市 共有 10 个子级城市!
229 张家界市 共有 5 个子级城市!
230 益阳市 共有 7 个子级城市!
231 郴州市 共有 12 个子级城市!
232 永州市 共有 12 个子级城市!
233 怀化市 共有 13 个子级城市!
234 娄底市 共有 6 个子级城市!
235 湘西自治州 共有 8 个子级城市!
236 广州市 共有 13 个子级城市!
237 韶关市 共有 11 个子级城市!
238 深圳市 共有 7 个子级城市!
239 珠海市 共有 4 个子级城市!
240 汕头市 共有 8 个子级城市!
241 佛山市 共有 6 个子级城市!
242 江门市 共有 8 个子级城市!
243 湛江市 共有 10 个子级城市!
244 茂名市 共有 7 个子级城市!
245 肇庆市 共有 9 个子级城市!
246 惠州市 共有 6 个子级城市!
247 梅州市 共有 9 个子级城市!
248 汕尾市 共有 5 个子级城市!
249 河源市 共有 7 个子级城市!
250 阳江市 共有 5 个子级城市!
251 清远市 共有 9 个子级城市!
252 潮州市 共有 4 个子级城市!
253 揭阳市 共有 6 个子级城市!
254 云浮市 共有 6 个子级城市!
255 南宁市 共有 13 个子级城市!
256 柳州市 共有 11 个子级城市!
257 桂林市 共有 18 个子级城市!
258 梧州市 共有 8 个子级城市!
259 北海市 共有 5 个子级城市!
260 防城港市 共有 5 个子级城市!
261 钦州市 共有 5 个子级城市!
262 贵港市 共有 6 个子级城市!
263 玉林市 共有 7 个子级城市!
264 百色市 共有 13 个子级城市!
265 贺州市 共有 5 个子级城市!
266 河池市 共有 12 个子级城市!
267 来宾市 共有 7 个子级城市!
268 崇左市 共有 8 个子级城市!
269 海口市 共有 5 个子级城市!
270 三亚市 共有 1 个子级城市!
271 海南直辖县 共有 19 个子级城市!
272 重庆辖区 共有 15 个子级城市!
273 重庆辖县 共有 21 个子级城市!
274 重庆辖市 共有 4 个子级城市!
275 成都市 共有 20 个子级城市!
276 自贡市 共有 7 个子级城市!
277 攀枝花市 共有 6 个子级城市!
278 泸州市 共有 8 个子级城市!
279 德阳市 共有 7 个子级城市!
280 绵阳市 共有 10 个子级城市!
281 广元市 共有 8 个子级城市!
282 遂宁市 共有 6 个子级城市!
283 内江市 共有 6 个子级城市!
284 乐山市 共有 12 个子级城市!
285 南充市 共有 10 个子级城市!
286 眉山市 共有 7 个子级城市!
287 宜宾市 共有 11 个子级城市!
288 广安市 共有 6 个子级城市!
289 达州市 共有 8 个子级城市!
290 雅安市 共有 9 个子级城市!
291 巴中市 共有 5 个子级城市!
292 资阳市 共有 5 个子级城市!
293 阿坝自治州 共有 13 个子级城市!
294 甘孜自治州 共有 18 个子级城市!
295 凉山自治州 共有 17 个子级城市!
296 贵阳市 共有 11 个子级城市!
297 六盘水市 共有 4 个子级城市!
298 遵义市 共有 15 个子级城市!
299 安顺市 共有 7 个子级城市!
300 铜仁地区 共有 10 个子级城市!
301 黔西南自治州 共有 8 个子级城市!
302 毕节地区 共有 8 个子级城市!
303 黔东南自治州 共有 16 个子级城市!
304 黔南自治州 共有 12 个子级城市!
305 昆明市 共有 15 个子级城市!
306 曲靖市 共有 10 个子级城市!
307 玉溪市 共有 10 个子级城市!
308 保山市 共有 6 个子级城市!
309 昭通市 共有 12 个子级城市!
310 丽江市 共有 6 个子级城市!
311 思茅市 共有 11 个子级城市!
312 临沧市 共有 9 个子级城市!
313 楚雄自治州 共有 10 个子级城市!
314 红河自治州 共有 13 个子级城市!
315 文山自治州 共有 8 个子级城市!
316 西双版纳州 共有 3 个子级城市!
317 大理自治州 共有 12 个子级城市!
318 德宏自治州 共有 5 个子级城市!
319 怒江傈自治州 共有 4 个子级城市!
320 迪庆自治州 共有 3 个子级城市!
321 拉萨市 共有 9 个子级城市!
322 昌都地区 共有 11 个子级城市!
323 山南地区 共有 12 个子级城市!
324 日喀则地区 共有 18 个子级城市!
325 那曲地区 共有 10 个子级城市!
326 阿里地区 共有 7 个子级城市!
327 林芝地区 共有 7 个子级城市!
328 西安市 共有 14 个子级城市!
329 铜川市 共有 5 个子级城市!
330 宝鸡市 共有 13 个子级城市!
331 咸阳市 共有 15 个子级城市!
332 渭南市 共有 12 个子级城市!
333 延安市 共有 14 个子级城市!
334 汉中市 共有 12 个子级城市!
335 榆林市 共有 13 个子级城市!
336 安康市 共有 11 个子级城市!
337 商洛市 共有 8 个子级城市!
338 兰州市 共有 9 个子级城市!
339 嘉峪关市 共有 1 个子级城市!
340 金昌市 共有 3 个子级城市!
341 白银市 共有 6 个子级城市!
342 天水市 共有 8 个子级城市!
343 武威市 共有 5 个子级城市!
344 张掖市 共有 7 个子级城市!
345 平凉市 共有 8 个子级城市!
346 酒泉市 共有 8 个子级城市!
347 庆阳市 共有 9 个子级城市!
348 定西市 共有 8 个子级城市!
349 陇南市 共有 10 个子级城市!
350 临夏自治州 共有 8 个子级城市!
351 甘南自治州 共有 8 个子级城市!
352 西宁市 共有 8 个子级城市!
353 海东地区 共有 6 个子级城市!
354 海北自治州 共有 4 个子级城市!
355 黄南自治州 共有 4 个子级城市!
356 海南自治州 共有 5 个子级城市!
357 果洛自治州 共有 6 个子级城市!
358 玉树自治州 共有 6 个子级城市!
359 海西自治州 共有 5 个子级城市!
360 银川市 共有 7 个子级城市!
361 石嘴山市 共有 4 个子级城市!
362 吴忠市 共有 5 个子级城市!
363 固原市 共有 6 个子级城市!
364 中卫市 共有 4 个子级城市!
365 乌鲁木齐市 共有 9 个子级城市!
366 克拉玛依市 共有 5 个子级城市!
367 吐鲁番地区 共有 3 个子级城市!
368 哈密地区 共有 3 个子级城市!
369 昌吉自治州 共有 8 个子级城市!
370 博尔塔拉州 共有 3 个子级城市!
371 巴音郭楞州 共有 9 个子级城市!
372 阿克苏地区 共有 9 个子级城市!
373 克孜勒苏州 共有 4 个子级城市!
374 喀什地区 共有 12 个子级城市!
375 和田地区 共有 8 个子级城市!
376 伊犁自治州 共有 10 个子级城市!
377 塔城地区 共有 7 个子级城市!
378 阿勒泰地区 共有 7 个子级城市!
379 [alex@localhost temp]$

4270行SQL 以下给出部分 太大啦. (全部SQL请下载)
 1 insert into address(id, levels, addkey, belongkey, toponym) values (1,1,'001','0','北京市');
 2 insert into address(id, levels, addkey, belongkey, toponym) values (2,1,'002','0','天津市');
 3 insert into address(id, levels, addkey, belongkey, toponym) values (3,1,'003','0','河北省');
 4 insert into address(id, levels, addkey, belongkey, toponym) values (4,1,'004','0','山西省');
 5 insert into address(id, levels, addkey, belongkey, toponym) values (5,1,'005','0','内蒙古区');
 6 insert into address(id, levels, addkey, belongkey, toponym) values (6,1,'006','0','辽宁省');
 7 insert into address(id, levels, addkey, belongkey, toponym) values (7,1,'007','0','吉林省');
 8 insert into address(id, levels, addkey, belongkey, toponym) values (8,1,'008','0','黑龙江省');
 9 insert into address(id, levels, addkey, belongkey, toponym) values (9,1,'009','0','上海市');
10 insert into address(id, levels, addkey, belongkey, toponym) values (10,1,'010','0','江苏省');
11 insert into address(id, levels, addkey, belongkey, toponym) values (11,1,'011','0','浙江省');
12 insert into address(id, levels, addkey, belongkey, toponym) values (12,1,'012','0','安徽省');
13 insert into address(id, levels, addkey, belongkey, toponym) values (13,1,'013','0','福建省');
14 insert into address(id, levels, addkey, belongkey, toponym) values (14,1,'014','0','江西省');
15 insert into address(id, levels, addkey, belongkey, toponym) values (15,1,'015','0','山东省');
16 insert into address(id, levels, addkey, belongkey, toponym) values (16,1,'016','0','河南省');
17 insert into address(id, levels, addkey, belongkey, toponym) values (17,1,'017','0','湖北省');
18 insert into address(id, levels, addkey, belongkey, toponym) values (18,1,'018','0','湖南省');
19 insert into address(id, levels, addkey, belongkey, toponym) values (19,1,'019','0','广东省');
20 insert into address(id, levels, addkey, belongkey, toponym) values (20,1,'020','0','广西区');
21 insert into address(id, levels, addkey, belongkey, toponym) values (21,1,'021','0','海南省');
22 insert into address(id, levels, addkey, belongkey, toponym) values (22,1,'022','0','重庆市');
23 insert into address(id, levels, addkey, belongkey, toponym) values (23,1,'023','0','四川省');
24 insert into address(id, levels, addkey, belongkey, toponym) values (24,1,'024','0','贵州省');
25 insert into address(id, levels, addkey, belongkey, toponym) values (25,1,'025','0','云南省');
26 insert into address(id, levels, addkey, belongkey, toponym) values (26,1,'026','0','西藏区');
27 insert into address(id, levels, addkey, belongkey, toponym) values (27,1,'027','0','陕西省');
28 insert into address(id, levels, addkey, belongkey, toponym) values (28,1,'028','0','甘肃省');
29 insert into address(id, levels, addkey, belongkey, toponym) values (29,1,'029','0','青海省');
30 insert into address(id, levels, addkey, belongkey, toponym) values (30,1,'030','0','宁夏区');
31 insert into address(id, levels, addkey, belongkey, toponym) values (31,1,'031','0','新疆区');
32 insert into address(id, levels, addkey, belongkey, toponym) values (32,1,'032','0','台湾省');
33 insert into address(id, levels, addkey, belongkey, toponym) values (33,1,'033','0','香港特区');
34 insert into address(id, levels, addkey, belongkey, toponym) values (34,1,'034','0','澳门特区');

自己建表,表结构很简单的吧!以上SQL插入语句大多数数据库都能用. (不能用自己改动ReadLocalityXml.java再用源码生成SQL)

 1 mysql> show create table address;
 2 +---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 3 | Table   | Create Table                                                                                                                                                                                                                 |
 4 +---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
 5 | address | CREATE TABLE `address` (
 6   `id` int(11NOT NULL,
 7   `levels` tinyint(4NOT NULL,
 8   `addkey` varchar(10NOT NULL,
 9   `belongkey` varchar(10NOT NULL,
10   `toponym` varchar(20NOT NULL
11 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
12 +---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
13 1 row in set (0.00 sec)

这样查询一级一级.

 1 mysql> select `addkey`,`toponym` from address where belongkey = '0';
 2 +--------+--------------+
 3 | addkey | toponym      |
 4 +--------+--------------+
 5 | 001    | 北京市       |
 6 | 002    | 天津市       |
 7 | 003    | 河北省       |
 8 | 004    | 山西省       |
 9 | 005    | 内蒙古区     |
10 | 006    | 辽宁省       |
11 | 007    | 吉林省       |
12 | 008    | 黑龙江省     |
13 | 009    | 上海市       |
14 | 010    | 江苏省       |
15 | 011    | 浙江省       |
16 | 012    | 安徽省       |
17 | 013    | 福建省       |
18 | 014    | 江西省       |
19 | 015    | 山东省       |
20 | 016    | 河南省       |
21 | 017    | 湖北省       |
22 | 018    | 湖南省       |
23 | 019    | 广东省       |
24 | 020    | 广西区       |
25 | 021    | 海南省       |
26 | 022    | 重庆市       |
27 | 023    | 四川省       |
28 | 024    | 贵州省       |
29 | 025    | 云南省       |
30 | 026    | 西藏区       |
31 | 027    | 陕西省       |
32 | 028    | 甘肃省       |
33 | 029    | 青海省       |
34 | 030    | 宁夏区       |
35 | 031    | 新疆区       |
36 | 032    | 台湾省       |
37 | 033    | 香港特区     |
38 | 034    | 澳门特区     |
39 +--------+--------------+
40 34 rows in set (0.01 sec)
41 
42 mysql>

 1 mysql> select `addkey`,`toponym` from address where belongkey = '018';
 2 +--------+-----------------+
 3 | addkey | toponym         |
 4 +--------+-----------------+
 5 | 018001 | 长沙市          |
 6 | 018002 | 株洲市          |
 7 | 018003 | 湘潭市          |
 8 | 018004 | 衡阳市          |
 9 | 018005 | 邵阳市          |
10 | 018006 | 岳阳市          |
11 | 018007 | 常德市          |
12 | 018008 | 张家界市        |
13 | 018009 | 益阳市          |
14 | 018010 | 郴州市          |
15 | 018011 | 永州市          |
16 | 018012 | 怀化市          |
17 | 018013 | 娄底市          |
18 | 018014 | 湘西自治州      |
19 +--------+-----------------+
20 14 rows in set (0.00 sec)
21 
22 mysql>

 1 mysql> select `addkey`,`toponym` from address where belongkey = '018011';
 2 +-----------+-----------------------+
 3 | addkey    | toponym               |
 4 +-----------+-----------------------+
 5 | 018011001 | 市辖区                |
 6 | 018011002 | 芝山区                |
 7 | 018011003 | 冷水滩区              |
 8 | 018011004 | 祁阳县                |
 9 | 018011005 | 东安县                |
10 | 018011006 | 双牌县                |
11 | 018011007 | 道县                  |
12 | 018011008 | 江永县                |
13 | 018011009 | 宁远县                |
14 | 018011010 | 蓝山县                |
15 | 018011011 | 新田县                |
16 | 018011012 | 江华瑶族自治县        |
17 +-----------+-----------------------+
18 12 rows in set (0.00 sec)
19 
20 mysql>
posted on 2010-07-02 09:50 Alex刺客 阅读(2004) 评论(0)  编辑  收藏 所属分类: JavaCode

只有注册用户登录后才能发表评论。


网站导航: