zoukankan      html  css  js  c++  java
  • mybatis如何直接执行传入的任意sql语句,并按照顺序取出查询的结果集

    需求:

      在连接数据库的单元测试时,极可能为测试某个测试点需提前准备对应的测试数据,这时,就需要对数据库表进行初始化。在执行完测试后,有时也需要查询数据库表来验证是不是正常入库。且为了保持测试的校验完整性和现有的功能代码分开,应有自已的sqlmap和dao。

      1.直接执行前端传来的任何sql语句,parameterType="String",

      2.对于任何sql语句,其返回值类型无法用resultMap在xml文件里配置或者返回具体的bean类型,因此设置resultType="java.util.Map",但是Map并不保证存入取出顺序一致,

      因此设置resultType="java.util.LinkedHashMap",为保证查询的字段值有序(存入与取出顺序一致)所以采用LinkedHashMap。

    mapper的接口方法:

    import java.util.LinkedHashMap;
    import java.util.List;
     
    public interface JunitBaseDao {
        
        List<LinkedHashMap<String, Object>> select(String sql);
        int insert(String sql);
        int update(String sql);
        int delete(String sql);
    

      相匹配的xml文件:

    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    <mapper namespace="cn.webank.wfts.dao.JunitBaseDao" >
    
      <select id="select" parameterType="java.lang.String" resultType="java.util.LinkedHashMap">
      	${value}
      </select>
      
      <insert id="insert" parameterType="java.lang.String">
      	${value}
      </insert>
      
      <update id="update" parameterType="java.lang.String">
      	${value}
      </update>
      
      <delete id="delete" parameterType="java.lang.String">
        ${value}
      </delete>
    </mapper>
    

     https://blog.csdn.net/wjxbj/article/details/84924098

  • 相关阅读:
    使用Docker及k8s启动logstash服务
    在kubernetes上部署zookeeper,kafka集群
    k8s configmap 挂载配置文件
    k8s 安装 rabbitMQ 单机版
    aws 挂载efs (nfs)目录
    长白山游记
    RedHat 安装YUM软件
    mysql查询案例
    mysql子查询
    mysql联合查询
  • 原文地址:https://www.cnblogs.com/isme-zjh/p/12809660.html
Copyright © 2011-2022 走看看