mysql 查询两张表结构相同的数据库_利用反射处理多个表结构相同的数据的查询和数据库表的关联...
最近做一個(gè)項(xiàng)目,需要對(duì)人口數(shù)據(jù)進(jìn)行查詢,但是人口數(shù)據(jù)分布在不同的街道表中,首先進(jìn)行了數(shù)據(jù)表結(jié)構(gòu)的統(tǒng)一,每個(gè)數(shù)據(jù)表以街道名開頭,然后其他的名字都一樣
前期將各個(gè)表中的字段也進(jìn)行了統(tǒng)一
抽象出一張字典表
將街道編號(hào)和街道的名字的首字母連接起來,因?yàn)椴樵兊臅r(shí)候是利用街道編號(hào)來的,這樣可以根據(jù)街道標(biāo)號(hào)拼出相對(duì)于的街道表的名字,(每個(gè)人口相關(guān)的表不止一張,因此需要統(tǒng)一);在查詢過程中,將查詢到的結(jié)構(gòu)返回一個(gè)LIST,(不同的表在dao中當(dāng)然對(duì)于不同的類啊,返回來再判斷是哪一類),然后利用反射Field[] fields = List.get(i).getDeclaredDields()獲得具體的屬性。拼出json文件返回前臺(tái)。
這還不算,很多信息需要關(guān)聯(lián)其他表,比如社區(qū)信息,社區(qū)信息需要根據(jù)街道信息才能查出來,但是不在同一張表中,因此反射回來以后,根據(jù)結(jié)果中的街道信息,再關(guān)聯(lián)其他表求社區(qū)信息,剛開始的時(shí)候總出錯(cuò),原來是我在設(shè)計(jì)對(duì)應(yīng)的forms,數(shù)據(jù)庫結(jié)果的java類時(shí),申明與社區(qū)有關(guān)的信息在前,而街道在后,那么反射回來遍歷屬性的時(shí)候,先遍歷到社區(qū)相關(guān)信息,而不是街道,就不能根據(jù)街道求出社區(qū)具體信息所在的表,社區(qū)相關(guān)信息也就沒有又有意義了。
同時(shí)在數(shù)據(jù)庫中拼sql語句時(shí),發(fā)現(xiàn)在直接在語句里加參數(shù),而不是通過參數(shù)數(shù)據(jù)進(jìn)行傳參時(shí),需要加單引號(hào)啊
另外,=與in是不一樣滴
附:
用的表有,
人口基本信息表 jiedao1peopleinfo;字段 名,性別,為了方便返回來以后我去求社區(qū),我加了街道編號(hào)字段,社區(qū)相關(guān)信息1
社區(qū)表:社區(qū)名,編號(hào)
關(guān)聯(lián)表:社區(qū)關(guān)聯(lián)信息1,社區(qū)表的編號(hào)
字典表:街道編號(hào),街道首字母
為了方便,我將所有表名字進(jìn)行規(guī)范化,查詢的時(shí)候,通過街道編號(hào),查到街道首字母,這樣就可以找到相關(guān)街道的人口表,社區(qū)表,關(guān)聯(lián)表
返回人口信息里面的內(nèi)容,然后我需要向前臺(tái)返回名,性別,街道,社區(qū),這樣我還需要根據(jù)返回的街道編號(hào),求出相關(guān)街道對(duì)應(yīng)的表,定位到這個(gè)街道的關(guān)聯(lián)表,根據(jù)前臺(tái)給出的關(guān)聯(lián)信息,找到社區(qū)表編號(hào),再根據(jù)編號(hào),找到社區(qū)名。
如果前臺(tái)沒有給參數(shù),我就需要從多個(gè)街道取數(shù)據(jù),這樣關(guān)聯(lián)起來幾百個(gè)表,我直接新建立一個(gè)表,將人口基本信息統(tǒng)一到一張表里,直接插用
insert into table_c
select * from table_b
union
select * from table_a
開始還可以,但是后來有問題了,那個(gè)人口表里有日期數(shù)據(jù),原來輸入的時(shí)候輸錯(cuò)了,格式不對(duì),導(dǎo)致不能插入,這幾十萬條數(shù)據(jù)我不能一條一條看吧,我就只把用的數(shù)據(jù)插進(jìn)去了,方法也簡(jiǎn)單,把星號(hào)換成具體的字段列名。
我通過街道編號(hào)是否存在來判斷前臺(tái)輸入?yún)?shù)是否全面,通過這樣建表,對(duì)于參數(shù)輸入不確定的問題就解決了
總結(jié)
以上是生活随笔為你收集整理的mysql 查询两张表结构相同的数据库_利用反射处理多个表结构相同的数据的查询和数据库表的关联...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker使用阿里云镜像加速
- 下一篇: SQL疑难杂症【4 】大量数据查询的时候