Mybaits自定义SQL
最近有個(gè)同事要包裝一個(gè)可以執(zhí)行sql語(yǔ)句的功能用的是mybatis
最開(kāi)始他想到的方案是拿到數(shù)據(jù)庫(kù)連接再執(zhí)行sql語(yǔ)句。
后來(lái)出了某些錯(cuò)誤來(lái)問(wèn)我,為了尋求比較快的解決方法于是我就試試了下下面的方法。
首先在Mapper添加?
<select id="select" resultMap="map" parameterType="java.lang.String" >
? ? ${_parameter}
? </select>
?parameterType為String的話 ?參數(shù)名就必須寫(xiě)_parameter
?resultMap 返回類(lèi)型是map型
這里的原理就是通過(guò)傳入字符串來(lái)執(zhí)行sql,當(dāng)然了上面這個(gè)只能執(zhí)行select 如果要執(zhí)行插入刪除更新就另外寫(xiě)個(gè)
大家可以封裝個(gè)函數(shù)來(lái)判斷是添加修改刪除來(lái)執(zhí)行對(duì)應(yīng)的Mapper
然后在對(duì)應(yīng)的dao接口添加
List<map>?select(String sql);
最后就可以得到自定義sql語(yǔ)句查詢的結(jié)果了。
@Resource ?
? private MyMapper myMapper;
....
List<map>?result?=myMapper.select("select * from user");
OK最后就可以用其他工具類(lèi)將map轉(zhuǎn)成你的對(duì)象或者轉(zhuǎn)成JsonString 再轉(zhuǎn)成對(duì)象數(shù)組。
? <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.pactera.domain.report.BasReport">
??? <!--????? WARNING - @mbggenerated
????? This element is automatically generated by MyBatis Generator, do not modify.
??? -->
??? <result column="SQL" jdbcType="CLOB" property="sql" />
? </resultMap>
總結(jié)
以上是生活随笔為你收集整理的Mybaits自定义SQL的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: WebLogic安装Linux cent
- 下一篇: linux安装mysql 5.6.33