废话少说直接上代码
一个存储sql语句的实体类SqlVo.java
public class SqlVo {
private String sql;
public String getSql() {
return sql;
}
public void setSql(String sql) {
this.sql = sql;
}
myMapper.java接口文件
public interface myMapper {
List<LinkedHashMap<String, Object>> selectBysql(SqlVo sqlVo);
}
myMapper.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.quality.mapper.myMapper">
<!-- ##### 万能SQL原生映射 -zyh ##### -->
<select id="selectBysql" parameterType="com.quality.vo.SqlVo" resultType="java.util.LinkedHashMap">
${sql}
</select>
</mapper>
测试方法
@Test
public void sql(){
SqlVo sqlVo=new SqlVo();
sqlVo.setSql("select sys_role.`name` from sys_role,sys_user_role WHERE sys_user_role.user_id=2 and sys_role.id=sys_user_role.role_id");
System.out.println(my.selectBysql(sqlVo));
}
看输出:
[{name=检测组}, {name=检测组}]
由
[{create_time=2019-08-11 18:52:36.0}, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]看出
返回字段中和数据库的一样,不会按驼峰转为合适的