Mybatis的resultMap返回map问题

 更新时间:2022年02月07日 09:29:04   作者:如果屈原会编程  
这篇文章主要介绍了Mybatis的resultMap返回map问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

resultMap返回map问题

<resultMap type="Map" id="bankMaintainMap">
      <result column="bank_name" property="bankName"/>
      <result column="maintain_time_interval" property="maintainTimeInterval"/>
  </resultMap>
  <select id="getMaintainNotice" parameterType="Map" resultMap="bankMaintainMap">
      select 
          bank_name,
          maintain_time_interval
      from
          fp_channel_prd_bank
      where 
          channel_prd_id=7 
      and     
          maintain_time_interval
  </select>

简单封装resultMap返回对象为map

public class DbUtils {
    private static String host = "47.93.******";
    private static String port = "3306";
    private static String username = "*****";
    private static String password = "******";
    private static String database = "******";
    static {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (Exception e) {
        }
    }
    private static Connection getConn() {
        Connection conn = null;
        try {
            String url = "jdbc:mysql://" + host + ":" + port + "/" + database;
            conn = DriverManager.getConnection(url, username, password);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }
    public static List<Map<String, Object>> execQuery(String sql, Object[] args) throws Exception {
        Connection conn = getConn();
        PreparedStatement ps = conn.prepareCall(sql);
        ResultSet rs = null;
        int count = StringUtils.countMatches(sql, "?");
        //变量赋值。。。。。。
        for (int i = 0; i < count; i++) {
            ps.setObject(i, args[i]);
        }
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        rs = ps.executeQuery();
        ResultSetMetaData metaData = rs.getMetaData();
      //注意。。metaData.getColumnName 获取字段名,rs.getObject 获取属性 是从 1 开始的,而不是从0 开始
        while (rs.next()) {
            int rowSize = metaData.getColumnCount();
            Map<String, Object> map = new HashMap<>();
            for (int i = 1; i <= rowSize; i++) {
                String labelName = metaData.getColumnName(i);
                Object obj = rs.getObject(labelName);
                map.put(labelName, obj);
            }
            list.add(map);
        }
        close(conn, ps, rs);
        return list;
    }
    /**
     * @param conn
     * @param ps
     * @param rs
     * @throws Exception
     */
    private static void close(Connection conn, PreparedStatement ps, ResultSet rs) throws Exception {
        rs.close();
        ps.close();
        conn.close();
    }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MyBatis测试报错:Cannot determine value type from string 'xxx'的解决办法

    MyBatis测试报错:Cannot determine value type from string &a

    这篇文章主要给大家介绍了关于MyBatis测试报错:Cannot determine value type from string 'xxx'的解决办法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • Spring加载配置和读取多个Properties文件的讲解

    Spring加载配置和读取多个Properties文件的讲解

    今天小编就为大家分享一篇关于Spring加载配置和读取多个Properties文件的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • mybatis拦截器实现数据库数据权限隔离方式

    mybatis拦截器实现数据库数据权限隔离方式

    通过Mybatis拦截器,在执行SQL前添加条件实现数据权限隔离,特别是对于存在用户ID区分的表,拦截器会自动添加如user_id=#{userId}的条件,确保SQL在执行时只能操作指定用户的数据,此方法主要应用于Mybatis的四个阶段
    2024-11-11
  • java 中的static关键字和final关键字的不同之处

    java 中的static关键字和final关键字的不同之处

    java 中的static关键字和final关键字的不同之处,需要的朋友可以参考一下
    2013-03-03
  • JAVA设计模式之访问者模式详解

    JAVA设计模式之访问者模式详解

    这篇文章主要介绍了JAVA设计模式之访问者模式详解,访问者模式是对象的行为模式,访问者模式的目的是封装一些施加于某种数据结构元素之上的操作,需要的朋友可以参考下
    2015-04-04
  • Java反射及性能详细

    Java反射及性能详细

    这篇文章主要介绍了Java反射及性能,现如今的java工程中,反射的使用无处无在。无论是设计模式中的代理模式,还是红透半边天的Spring框架中的IOC,AOP等等,都存在大量反射的影子。下面我们就对该话题进行详细介绍,感兴趣的小伙伴可以参考一下
    2021-10-10
  • 浅谈Java finally语句到底是在return之前还是之后执行(必看篇)

    浅谈Java finally语句到底是在return之前还是之后执行(必看篇)

    下面小编就为大家带来一篇浅谈Java finally语句到底是在return之前还是之后执行(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Java Swing JRadioButton单选按钮具体使用

    Java Swing JRadioButton单选按钮具体使用

    这篇文章主要介绍了Java Swing JRadioButton单选按钮具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • IDEA 每次新建工程都要重新配置 Maven的解决方案

    IDEA 每次新建工程都要重新配置 Maven的解决方案

    这篇文章主要介绍了IDEA 每次新建工程都要重新配置Maven解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • Java回调函数实例代码详解

    Java回调函数实例代码详解

    这篇文章主要介绍了Java回调函数实例代码详解,需要的朋友可以参考下
    2017-10-10

最新评论