1、service
String sql = "SELECT * FROM table where id = #{params.id}"; // 这里是你的SQL语句
Map<String,Object> params = new HashMap<>();
params.put("id","1");
List<Map<String,Object>> result= mapper.executeQuery( sql,params);
**2、MyMapper **
List<TableEntity> executeQuery(@Param("sql") String sql);
3、xml
<select id="executeQuery" parameterType="string" resultType="java">
${sql}
</select>
总结:
只需要写好sql语句参数准备好传进去,mybatis会自动进行映射,我目前的需求是去使用sql语句作为参数去查询,但是这样写有风险,虽然是标签,但是一样能执行查询语句,所以我们已查询为目的的sql语句,还是推荐使用jdbctemplate的query方法,因为他只会执行查询语句,执行增删改会报错。推荐查看jdbctemplat增删改查