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基本不用變。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章