mybatis动态传入表名并返回map,返回空间点的坐标

mybatis学习中
动态传入表名并返回某几个字段map,取某个空间表的shape字段的坐标。代码如下

xml文件
<select id="selectLocationByPrimaryKey" statementType="STATEMENT" resultType="java.util.HashMap" parameterType="java.util.Map">
   select t.shape.minx as X,t.shape.miny as Y from ${sourceObj} t where OBJECTID = ${featureId}
  </select>
注意statementType必须,且值必须是大写的STATEMENT,参数传入为多个,用map。

dao文件
public void selectLocByPK(String sourceObj, Long featureId) {
params.put("sourceObj", "sde."+sourceObj);
params.put("featureId", featureId);
Map map = this.getSqlSessionTemplate().selectOne("selectLocationByPrimaryKey", params);
Double x = (Double)map.get("X");
Double y = (Double)map.get("Y");
System.out.println(x+","+y);
}
注意查询的是sde用户下的表名是参数传递的sourceObj,因为用其他用户连接的数据库 所以查询其他用户下的表的时候必须用用户名加表名。当然前提你这个用户有查询其他用户表的权限。params类型是HashMap。xml文件中取值时候必须要跟此地方绑定的key值一直,不然取到为null.此处key为xml文件的时候查询列的别名。


只是一条数据,多条数据可以用selectList 方法 返回List,xml基本不用变。

猜你喜欢

转载自blog.csdn.net/qiuli_liu/article/details/32101449