1. 程式人生 > >中國城市資料 上下級關係 區號 郵編 entity by jpa

中國城市資料 上下級關係 區號 郵編 entity by jpa

主要是腳本里包含中國城市的資料,如果對資料沒興趣,不要繼續往下看了。可匯入使用,一直到縣或區,包括電話區號和郵編。(資料沒有經過嚴格驗證,若存在問題,請郵件聯絡[email protected]

指令碼下載地址:http://download.csdn.net/detail/partner4java/5055425

程式碼示例下載地址:http://download.csdn.net/detail/partner4java/5055436

entity為jpa格式,不建議每次都查取,因為城市基本就不會變,建議設定為一個本機的Hash啟動載入或使用商業快取產品。

等級列舉:

package com.nongfu888.info.enums;

/**
 * 城市等級<br/>
 * 
 * 
 * @author partner4java
 * 
 */
public enum CityGrade {
	/** 省/自治區 */
	PROVINCIAL {
		@Override
		public int grade() {
			return 1;
		}
	},
	/** 直轄市 */
	MUNICIPALITIES {
		@Override
		public int grade() {
			return 1;
		}
	},
	/** 市 */
	CITY {
		@Override
		public int grade() {
			return 2;
		}
	},
	/** 縣\區 */
	DISTRICT {
		@Override
		public int grade() {
			return 3;
		}
	},
	/** 鄉鎮 */
	VILLAGES {
		@Override
		public int grade() {
			return 4;
		}
	};

	/**
	 * 返回顯示級別<br/>
	 * 
	 * @return 1為省會或直轄市(直轄市的2級也填寫市名稱);2為市級(包括直轄市);3為縣級或直轄市的區;4為鄉鎮。
	 */
	public abstract int grade();
}
城市entity:
package com.nongfu888.info.entity;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;

import com.nongfu888.info.enums.CityGrade;

/**
 * 城市物件
 * 
 * @author partner4java
 * 
 */
@Entity
public class City implements Serializable {
	private static final long serialVersionUID = 6258700470046195512L;

	/** 城市id */
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private int cityId;

	/** 城市名稱 */
	@Column(length = 20)
	private String cityName;

	/** 郵編 */
	@Column(length = 6)
	private int zipCode;

	/** 電話區號,但是儲存為數字,去掉前面的0,取的時候需要加上0 */
	@Column(length = 3)
	private int areaCode;

	/** 城市級別 */
	@Enumerated(EnumType.STRING)
	private CityGrade grade;

	/** 所屬上級城市:為null,即為最頂級 -- 省、直轄市 */
	@ManyToOne(fetch = FetchType.LAZY)
	private City belongCity;

	/** 包含的城市 */
	@OneToMany(mappedBy = "belongCity", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
	private Set<City> containCitys = new HashSet<City>();

service藉助了p4jorm(p4jorm 參照相關文章http://blog.csdn.net/partner4java)
package com.nongfu888.info.service;

import com.nongfu888.info.entity.City;
import com.partner4java.orm.dao.P4jDao;

/**
 * 城市實體業務處理類
 * 
 * @author partner4java
 * 
 */
public interface CityService extends P4jDao<City> {

}
package com.nongfu888.info.service.impl;

import org.springframework.stereotype.Service;

import com.nongfu888.info.entity.City;
import com.nongfu888.info.service.CityService;
import com.partner4java.orm.dao.P4jJpaDaoSupport;

@Service
public class CityServiceBean extends P4jJpaDaoSupport<City> implements CityService {

}
配置具體檢視下載附件吧,本測試結合了P6Spy,可以打印出當下的SQL最終執行指令碼(就是賦值後的)。

測試用例又藉助了spring-test分支:

@ContextConfiguration(locations = { "/META-INF/spring/beans.xml" })
@TransactionConfiguration(transactionManager = "transactionManagerJpa")
public class CityServiceBeanTest extends AbstractTransactionalJUnit4SpringContextTests {
	private CityService cityService;
	private NamedParameterJdbcTemplate namedParameterJdbcTemplate;

	@Autowired
	public void setCityService(CityService cityService) {
		this.cityService = cityService;
	}

	@Autowired
	public void setNamedParameterJdbcTemplate(NamedParameterJdbcTemplate namedParameterJdbcTemplate) {
		this.namedParameterJdbcTemplate = namedParameterJdbcTemplate;
	}

	@Test
	public void testClear() {
	}

	@Test
	@Rollback(false)
	public void testDelete() {
		cityService.delete(1);
	}

	@Test
	public void testGet() {
		City city = cityService.get(1);
		System.out.println(city);
		System.out.println("=============================");
		System.out.println(city.getContainCitys());
		System.out.println("-------------------------");
		// System.out.println(city.getBelongCity());
	}

	@Test
	@Rollback(false)
	public void testSave() {
		City city = new City();
		city.setCityName("山東省");
		city.setGrade(CityGrade.PROVINCIAL);
		Set<City> containCitys = new HashSet<City>();
		containCitys.add(new City("濟寧市", 272100, 0537, CityGrade.CITY, city));
		containCitys.add(new City("濟南市", 272000, 0531, CityGrade.CITY, city));

		city.setContainCitys(containCitys);
		cityService.save(city);
	}

	@Test
	public void testQuery() {
		CityFormBean cityFormBean = new CityFormBean();
		cityFormBean.setCityName("山東省");

		PageData<City> citys = cityService.query(cityFormBean, new PageIndex(1), null);
		City city = citys.getResultlist().get(0);
		System.out.println(city);
		System.out.println("=============================");
		Set<City> chCitys = city.getContainCitys();
		for(City chCity:chCitys){
			System.out.println(chCity);
			System.out.println(chCity.getContainCitys());
		}
	}

}

相關推薦

中國城市資料 上下級關係 郵編 entity by jpa

主要是腳本里包含中國城市的資料,如果對資料沒興趣,不要繼續往下看了。可匯入使用,一直到縣或區,包括電話區號和郵編。(資料沒有經過嚴格驗證,若存在問題,請郵件聯絡[email protected]) 指令碼下載地址:http://download.csdn.net/d

特殊JSON處理(如省市區資料,國家資料

在實際開發中,現在安卓端和後臺之間的資料互動,一般都是用JSON來傳遞資料資訊。JSON大家一般都比較熟悉。我這邊就以實際專案中的後臺傳過來的情況和大家分析下及如何處理。 比如後臺返回一個交易查詢: 我們看到這個列表本身要按月份來進行分類。然後月份裡面再是具體的一項項記錄。 這裡我們分二種

Python爬蟲系列之郵編爬取

Python爬蟲之<—>全國郵編區號爬取 僅供交流探討 歡迎提出改進 程式碼部分 import re import requests import time import MySQLdb ''' @author:王磊 @time :201

世界各國簡稱 英文名稱 電話JSON資料

[{"short":"AD","name":"安道爾共和國","en":"Andorra","tel":"376"},{"short":"AE","name":"阿拉伯聯合大公國","en":"UnitedArabEmirates","tel":"971"},{"short":"AF","name"

上下級關係的json資料格式

一個無聊的需求是需要在後臺把一個樹形結構拼成json字串。記錄一下這個過程: 把下面那張圖的資料列表拼成這樣的串: {"children":[{"children":[{"children":[ ],"id":"4","name":"d","pid":"2"},{"chil

根據ip獲取location(國家、城市等)資訊(親測可行,我自己就在用)

最近需要根據ip地址獲取國家和城市資訊。我有兩種解決方法。一種是阿里的提供的restful api。傳入ip,請求對應的url。即可返回json資料,解析json即可。但是這種就依賴於阿里的api。個人覺得可能還是需要有一個自己的ip地址庫會好一些,於是我選擇了geoip2來

2017中國城市綜合發展指標出爐 北京、上海、深圳 冠亞季軍

質量 保持 重慶 天津 空氣 社會 排行 教授 post 2017年,北京、上海、深圳的城市綜合發展指標不僅蟬聯綜合排名冠亞季軍,還各自蟬聯了社會、經濟、環境3個大項的全國榜首。記者23日獲悉,由國家發改委發展規劃司與雲河都市研究院共同編制的《中國城市綜合發展指標2017》

【轉】中國十大技術社你都知道哪些?

開源框架 ive ups 流量 tps 用戶 sset 領域 架構 社區是聚集一類具有相同愛好或者相同行業的群體,IT技術社區就是聚集了IT行業內的技術人,在技術社區可以了解到行業的最新進展,學習最前沿的技術,認識有相同愛好的朋友,在一起學習和交流。 技術社區一般有三類人:

資料分析、資料探勘、演算法工程師、大資料分析師的別是什麼?爬招聘網站用資料來全方位分析

大資料行業經過幾年的發展和沉澱,大資料專案崗位細分領域已經趨於完善,本文主要探討在大資料分析這個領域,通過爬蟲爬取各個招聘網站的相關資料,對細分崗位進行深入分析,本文的呈現,感謝科多大資料資料分析培訓班第10期學員“NO.1”團隊的技術支援。 此次分析結果呈現經歷三個階段: 細分查詢目

redis遷移複製資料,主從關係建立實踐

   裝redis的機器出了點問題,需要轉移資料然後初始化系統,然後我就研究了下redis的資料複製,發現了slaveof 192.168.0.1 6379這個命令,開始踩下這個坑    首先要新的伺服器上進入redis-cli,執行從庫配置 slaveof

資料重新定義未來,2018 中國資料技術大會(BDTC)豪華盛宴搶先看!

隨著資訊科技的迅猛發展,資料的重要性和價值已毋庸置疑,資料正在改變競爭格局,成為重要的生產因素,更被定義為“21世紀的新石油”。在資訊高速傳播的今天,資料已經滲透到每一個行業和業務職能領域,指數級的速度增長將我們帶入大資料時代。作為年度技術趨勢與行業應用的風向標,2018 中國大資料技術大會(BDT

Python3(phone)模組獲取手機號歸屬地、、運營商等

from phone import Phone import xlrd import xlwt def Get_Excel_data(): file = 'Tel.xlsx' #電話號碼儲存的excle表 re1 = xlrd.open_workbook(file)

阿里雲城市資料大腦開發規範

課程連結:阿里雲城市資料大腦開發規範 本課程是阿里雲城市大腦相關開發規範。 2016年10月13日,阿里巴巴集團技術委員會主席王堅在杭州雲棲大會上面向全球釋出城市資料大腦。城市資料大腦是一座城市的人工智慧中樞,核心採用阿里雲ET人工智慧技術,可以對整個城市進行全域性實時分析,自動調配公共資源

redis 系列9 物件型別(字串,雜湊,列表,集合,有序集合)與資料結構關係

原文: redis 系列9 物件型別(字串,雜湊,列表,集合,有序集合)與資料結構關係 一.概述   在前面章節中,主要了解了 Redis用到的主要資料結構,包括:簡單動態字串、連結串列(雙端連結串列)、字典、跳躍表、 整數集合、壓縮列表(後面再瞭解)。Redis沒有直接使用這些資料結構來實現鍵

中國城市資本流動問題探索

  資料來源: 資料:全國2013-2016所有企業間的投融資資訊資料 1、檢視全國城際控股型投資關係 要求:① 通過“data.xlsx”匯出csv後,直接通過gephi看全國投資情況,有什麼發現?② 分別篩選出“同城投資”、“跨城投資”的TOP20,比較一下兩類投資的資料分佈** 按照2

python的資料型別以及運算子

整型 In [1]: a = 1 In [2]: print(a)

盛會再臨,2018 中國資料技術大會(BDTC)首曝日程及議題

滿目皆乾貨,俯仰盡拾珠。作為年度技術趨勢與行業應用的風向標,連續成功舉辦十一年的中國大資料技術大會(BDTC)攜主題“大資料新應用”再度強勢來襲,穩踏技術時代浪潮,勢將引爆今冬技術圈。 資料,讓一切有跡可循,讓一切有源可溯。2018 年12 月 6-8 日,由中國計算

八折進行中 | 2018 中國資料技術大會(BDTC)首輪講師陣容震撼來襲!

暌違一載,今又相約。作為年度技術趨勢與行業應用的風向標,2018 中國大資料技術大會(BDTC 2018)攜主題“大資料新應用”再度強勢來襲,穩踏技術時代浪潮,勢將引爆今冬技術圈。 2018 年12 月 6-8 日,由中國計算機學會主辦,CCF大資料專家委員會承辦,CS

盛會再臨,2018中國資料技術大會(BDTC)首曝日程及議題

  滿目皆乾貨,俯仰盡拾珠。作為年度技術趨勢與行業應用的風向標,連續成功舉辦十一年的中國大資料技術大會(BDTC)攜主題“大資料新應用”再度強勢來襲,穩踏技術時代浪潮,勢將引爆今冬技術圈。   資料,讓一切有跡可循,讓一切有源可溯。2018 年12

中國城市程式碼json,省市二級聯動json

根據中國城市程式碼表整理的json檔案: level代表行政級別 code代表城市編碼 { "provinces": [ { "name":"北京市", "level":"1", "code":"1100", "cities