Mybatis+postgresql


1、postgis中常用的查询函数:

2、以及如何将postgresql中的一条记录转化成包含地理信息的GeoJson,以下为相应的sql语句:

/*查询坐标*/
select ST_AsGeoJSON(geom)::json As geometry from table_name;

/*查询属性*/
select row_to_json((select l from (select objcode,objname,ofarea,ofroad,objpos) as l)) as properties from table_name;

/*查询properties*/
select 'Features' as TYPE,
       ST_AsGeoJSON(geom)::json As geometry,
       row_to_json((select l from (select objcode,objname,ofarea,ofroad,objpos) as l)) as properties
       from table_name as lg
/*查询所有信息方法一*/
 SELECT row_to_json(fc)
 FROM ( SELECT 'FeatureCollection' As type, array_to_json(array_agg(f)) As features
 FROM (SELECT 'Feature' As type
    , ST_AsGeoJSON(lg.geog)::json As geometry
    , row_to_json(lp) As properties
   FROM table_name As lg 
         INNER JOIN (SELECT loc_id, loc_name FROM locations) As lp 
       ON lg.loc_id = lp.loc_id  ) As f )  As fc;

/*查询所有信息方法二*/
 SELECT row_to_json(fc)
 FROM ( SELECT 'FeatureCollection' As type, array_to_json(array_agg(f)) As features
 FROM (SELECT 'Feature' As type
    , ST_AsGeoJSON(lg.geom)::json As geometry
    , row_to_json(lp) As properties
   FROM ld As lg 
         INNER JOIN (SELECT gid,objcode,objname FROM table_name) As lp 
       ON lg.gid = lp.gid  ) As f )  As fc;

/*postgresql查询某一表中的所有列名名*/
select array_agg(fc)
from (select column_name from information_schema.columns where table_schema='public' and table_name='table_name' and column_name != 'geom') as fc

2、Mybatis写sql语句的方式有两种,第一种是在*Map.xml中进行编写,第二中是在Map接口的抽象方法上直接进行注释,一般来说第二种方式更加高效,尤其是在编写复杂的sql语句,比如进行嵌套查询时第二种方法优势更加明显。

3、当数据库中某一个表的列数过多时,在反向生成映射文件后,在*Map.xml文件中会对该表的所有列名产生一个Base_Column_List。在与postgres进行结合时,可以将geom直接修改成ST_AsGeoJSON(geom) as geom,这样可以直接获取该feature的坐标信息。

 <sql id="Base_Column_List">
    gid, objcode, objname, ofarea, ofroad, objpos, deptcode1, deptname1, deotcode2, deptname2, 
    deptcode3, deptname3, objstate, ordate, chdate, lfunction, linecolor, width, length, 
    linearea, datasource, picture, remark, layer, ST_AsGeoJSON(geom) as geom
  </sql>

转载自:https://blog.csdn.net/weixin_36832313/article/details/80111919

You may also like...