zoukankan      html  css  js  c++  java
  • 利用反射处理多个表结构相同的数据的查询和数据库表的关联

    最近做一个项目,需要对人口数据进行查询,但是人口数据分布在不同的街道表中,首先进行了数据表结构的统一,每个数据表以街道名开头,然后其他的名字都一样

    前期将各个表中的字段也进行了统一

    抽象出一张字典表

    将街道编号和街道的名字的首字母连接起来,因为查询的时候是利用街道编号来的,这样可以根据街道标号拼出相对于的街道表的名字,(每个人口相关的表不止一张,因此需要统一);在查询过程中,将查询到的结构返回一个LIST,(不同的表在dao中当然对于不同的类啊,返回来再判断是哪一类),然后利用反射Field[] fields = List.get(i).getDeclaredDields()获得具体的属性。拼出json文件返回前台。

    这还不算,很多信息需要关联其他表,比如社区信息,社区信息需要根据街道信息才能查出来,但是不在同一张表中,因此反射回来以后,根据结果中的街道信息,再关联其他表求社区信息,刚开始的时候总出错,原来是我在设计对应的forms,数据库结果的java类时,申明与社区有关的信息在前,而街道在后,那么反射回来遍历属性的时候,先遍历到社区相关信息,而不是街道,就不能根据街道求出社区具体信息所在的表,社区相关信息也就没有又有意义了。

    同时在数据库中拼sql语句时,发现在直接在语句里加参数,而不是通过参数数据进行传参时,需要加单引号啊

    另外,=与in是不一样滴

    附:

    用的表有,

    人口基本信息表 jiedao1peopleinfo;字段 名,性别,为了方便返回来以后我去求社区,我加了街道编号字段,社区相关信息1

    社区表:社区名,编号

    关联表:社区关联信息1,社区表的编号

    字典表:街道编号,街道首字母

    为了方便,我将所有表名字进行规范化,查询的时候,通过街道编号,查到街道首字母,这样就可以找到相关街道的人口表,社区表,关联表

    返回人口信息里面的内容,然后我需要向前台返回名,性别,街道,社区,这样我还需要根据返回的街道编号,求出相关街道对应的表,定位到这个街道的关联表,根据前台给出的关联信息,找到社区表编号,再根据编号,找到社区名。

    如果前台没有给参数,我就需要从多个街道取数据,这样关联起来几百个表,我直接新建立一个表,将人口基本信息统一到一张表里,直接插用

    insert into table_c

    select * from table_b

    union 

    select * from table_a

    开始还可以,但是后来有问题了,那个人口表里有日期数据,原来输入的时候输错了,格式不对,导致不能插入,这几十万条数据我不能一条一条看吧,我就只把用的数据插进去了,方法也简单,把星号换成具体的字段列名。

    我通过街道编号是否存在来判断前台输入参数是否全面,通过这样建表,对于参数输入不确定的问题就解决了

  • 相关阅读:
    C#中的扩展方法详解
    MVC Razor模板引擎 @RenderBody、@RenderPage、@RenderSection及Html.RenderPartial、Html.RenderAction
    @html.ActionLink的几种参数格式
    MVC session过期如何处理跳转
    LINQ to SQL和Entity Framework对比与关联
    ASP.Net 更新页面输出缓存的几种方法
    asp.net缓存
    ASP.NET应用程序与页面生命周期
    两种图片延迟加载的方法总结jquery.scrollLoading.js与jquery.lazyload.js
    测试入门知识
  • 原文地址:https://www.cnblogs.com/yuanfuqiang/p/5540443.html
Copyright © 2011-2022 走看看