精华内容
下载资源
问答
  • 我的解决方案是在数据库查询的时候以UUID为键,以实体类对象为值把数据存储在Map集合里边,然后根据UUID去获取对应的数据。 Mybatis官方文档的对该注解的解释: mybatis官方API文档 我这里的需求是根据UUID...

    (一)背景说明

    众所周知,遍历集合时如果进行数据库操作会引发严重的性能问题,我们该如何去避免这个问题呢?
    本文记录一下前段时间遇到这个问题的解决方案。


    (二)解决方案

    我的解决方案是在数据库查询的时候以UUID为键,以实体类对象为值把数据存储在Map集合里边,然后根据UUID去获取对应的数据。

    在这里插入图片描述

    在这里插入图片描述


    Mybatis官方文档的对该注解的解释:
    在这里插入图片描述
    mybatis官方API文档


    在这里插入图片描述


    我这里的需求是根据UUID去获取另一张表的数据,UUID作为Map的主键以后,可以调用containsKey去判断Map集合有没有对应的对象属性。

    在这里插入图片描述
    在这里插入图片描述


    文章仅用来作记录分享,以上纯属个人见解,如有不当之处,还望指正。

    展开全文
  • mybatis 查询数据库,返回map集合

    千次阅读 2018-11-13 14:45:41
    1.不指定返回的key:返回以学员id为key,学员信息为value的集合  java代码(dao实现层) /** * 获取学员分类 以id为key, ...public Map<Long, StudentType> getStudentTypeMap() { return th...

    1.不指定返回的key:返回以学员id为key,学员信息为value的集合 

    java代码(dao实现层)

    /**
     * 获取学员分类 以id为key, StudentType对象为value
     *
     * @return
     */
    @Override
    public Map<Long, StudentType> getStudentTypeMap() {
        return this.sqlSession.selectMap("StudentTypeMapper.getStudentTypeMap","id");
    }

    mapper文件 

    <!--获取学员分类 以id为key, StudentType对象为value-->
    <select id="getStudentTypeMap" resultType="StudentType">
        select
        <include refid="edu_student_type_columns"/>
        from edu_student_type
    </select>

    2.指定返回的map中的具体的key

    dao层:指定key为userPaper

        public Map<String, PaperRecordDto> getExamPaperRecordMaxScoreByUserIds(String userIds) {
            return sqlSession.selectMap("PaperRecordMapper.getExamPaperRecordMaxScoreByUserIds",userIds,"userPaper");
        }

     

    mapper文件

     <!--获取用户每张试卷的最高成绩的考试信息 以 userId_parentId 作为key, PaperRecord对象作为value
            此处内层查询 在mysql5.7后 order by 字段后必须加 limit 否则外层group by 的结果仍未排序-->
        <select id="getExamPaperRecordMaxScoreByUserIds" parameterType="String" resultType="PaperRecordDto">
            SELECT * FROM (
              SELECT CONCAT_WS('_', cus_id, parent_id) AS userPaper,
                exam_exampaper_record.id,
                exam_exampaper_record.user_score AS userScore,
                exam_exampaper_record.cus_id AS cusId,
                exam_exampaper_record.parent_id AS parentId,
                exam_exampaper_record.add_time AS addTime
                FROM exam_exampaper_record
                WHERE exam_exampaper_record.status = 0
                AND !ISNULL(parent_id)
                AND cus_id IN (${value})
                ORDER BY user_score DESC LIMIT 100000000
            )AS a
            GROUP BY a.cusId, a.parentId
        </select>

     

    展开全文
  • 工作中发现从Mysql数据库查询数据,返回的时间封装到Map里,取值得时候报错,本想转成时间类型,再存入另一个对象结果不能转成时间的问题 String time= String.valueOf(map.get("time")); SimpleDateFormat sdf =...

    工作中发现从Mysql数据库中查询数据,返回的时间封装到Map里,取值得时候报错,本想转成时间类型,再存入另一个对象结果不能转成时间的问题

    String time= String.valueOf(map.get("time"));
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try {
        Date parse = sdf.parse(time);
        Instant instant = parse.toInstant();
        ZoneId zoneId = ZoneId.systemDefault();
    
        LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
        } catch (ParseException e) {
            e.printStackTrace();
        }
    
    展开全文
  • NULL 博文链接:https://huangyongxing310.iteye.com/blog/2414591
  • 封装jdbc,用Map实现快速的数据库增删改例子,具体可以参考util包下的BaseDao
  • 如题,sql使用了union 将2个表的结果合并到一个表 而且想要查询出来的是map集合, 键值对形势的 比如 "name":"rr","age":"14"; 现在发现如果想要返回map集合执行使用原生sql但是 该dao已经继承了 hibernate的父类了...
  • map接收数据库查询到的多行结果jdbc形式 代码如下: Map&amp;lt;String, Map&amp;lt;String, Object&amp;gt;&amp;gt; map=new HashMap&amp;lt;String, Map&amp;lt;String, Object&...


    通常在数据库查询返回多行结果时,会以list形式来接收。但遍历list毕竟麻烦且耗时,不如直接返回map处理起来简单。

    jdbc形式 代码如下:

    
    Map<String, Map<String, Object>> map=new HashMap<String, Map<String, Object>>(2048);
    Connection con = PoolManager.getConnection();;
    PreparedStatement pst = con.prepareStatement(sql);
    ResultSet rs = pst.executeQuery();
    ResultSetMetaData md = rs.getMetaData();
    int columnCount = md.getColumnCount();
    while (rs.next()) {
        Map<String, Object> objectMap=new HashMap<String, Object>(16);
        for (int i = 1; i <= columnCount; i++) {
            objectMap.put(md.getColumnName(i), rs.getObject(i));
        }
        map.put(String.valueOf(rs.getObject(1)),objectMap);//key objectMap(字段名,字段值)
    }
    PoolManager.freeConnection(con);
    

    连接池可参考http://blog.csdn.net/yaerfeng/article/details/7076452

    mybaits

    mybatis中也可以做类似处理,有两种方式,1)在mapper文件中增加注解MapKey(“列名”),则列名即为key值 2)则重写ResultHandler接口

    https://segmentfault.com/a/1190000004278833 MapKey
    http://blog.csdn.net/sou_liu/article/details/47755635 重写ResultHandler接口

    下文为使用Mybatis拦截器实现Mybatis查询返回Map的一种方法,可指定key,value归属列
    http://blog.csdn.net/zylzb/article/details/40511055

    lambda

    当然,使用lambda表达式要更简单一些……

    List<Person> personList;
    Map<Long, Person> mapPerson = personList.stream().collect(Collectors.toMap(Person::getId, p -> p));
    Map<Long, List<Person>> personMap = personList.stream().collect(Collectors.groupingBy(p -> p.getId()));
    展开全文
  • 使用Map接收返回数据库的数据

    千次阅读 2018-03-11 19:52:00
    查询返回值是map类型的一条数据 1 首先在接口中写方法 public interface EmployeeMapper { //返回一条记录的map;key就是列名,值就是对应的值 public Map<String, Object> getEmpByIdReturnMap(Integer ...
  • 但是在mybatis中没有直接查询返回map结果的接口(也许有,只是我不知道)。下面给出一种简易的方式能达到同样的目的。 一、定义一个辅助类,用于存储从数据库查询的主键和属性值 package com.e...
  • 批量查询符合某一条件的数据,返回Map集合,方便调用,减少多次的JDBC交互,减轻数据库压力。 /** * 根据userIds信息查询用户信息,返回Map集合 * @param userIds * @return */ public Map&amp;amp;amp;amp;amp...
  • 想要将数据库中取出来的格式和下图中一样,但是不管我将映射的bean中对应的字段改成大写,还是将mapper中的字段改成大写,最后查询出来的格式一致都是小写 解决办法,在映射的bean中 在需要大写的KEY的get方法上...
  • java中将数据库中数据直接赋值给Map对象,目的是为了方便取值,这种方式需要用到spring框架
  • golang 操作数据库,不使用 ORM 的情况下,查询数据一般使用 Scan。 网上能查到的例子,大多数是先定义一个实体,然后再通过结果集的 Scan,放到结构体的字段中。 这样做的局限性就是不通用,不同的表的查询需要定义...
  • mybatis两种查询方式 一个是resultMap 一个是实体类 entity 1. resultMap &lt;resultMap type="java.util.HashMap" id="deptsubmitList"&gt; &lt;result property="...
  • 数据库查询结果封装List<Map,String>>

    千次阅读 2017-10-24 20:32:57
    我想直接hibernate框架的query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP) 属性把结果转成List<Map,String>> 的格式返回action层, 但是当我在action层取出数据库类型为int字段的
  • 之前在开发过程中,遇到了这样的一个业务场景,需要通过传进来的一个id列表list去查询一个list数据,然后再对每一个数据做相应的业务处理,那时候刚出来工作,第一时间想到的是for循环去遍历这个id列表,然后一个...
  • mysql数据库返回Map格式的简单实现

    千次阅读 2020-12-23 10:27:27
    数据库返回map格式,找了一下没有找到简单合适的,下面提供两种方式适合初学者 一、resultType = java.util.HashMap mapper.xml <select id="getNameAndAge" resultType="java.util.HashMap"> SELECT ...
  • Map集合保存数据库

    万次阅读 2017-09-19 15:43:09
    1.Map paramsMap = new HashMap();  List itemList = sf.parseRequest(request);  // 1.上传  for (FileItem fileItem : itemList) {  if (!fileItem.isFormFiel
  • 利用Map集合储存并打印数据库信息 java练习题 实验目的: 1、 学习哈希映射的创建; 2、 掌握使用HashMap来创建键-值对; 3、 掌握通过键来查找对应的值。 实验要求: 任务一: 编写一个Java应用程序,完成以下功能...
  • //获取所有的城市信息 List cityMap = perInfoMapper.allCity(); //将城市信息转换为map,城市code为键,城市... map = cityMap.stream().collect(Collectors.toMap(City::getCityCode, c -> c.getCityName())...
  • 这段代码是将结果集封装到Map里,字段为key,记录为value。然后再将每个Map添加到List里。 [java] view plain copy   import java.sql.Connection;  import java.sql.DriverManager;  ...
  • MyBatis之数据库操作,返回Map型数据

    千次阅读 2019-06-27 21:02:45
    Map, Object> map = financialRelatedService.queryMaxMmqAndMinTime(); Integer mmq = null; Date maxTime = null; if (map != null) { mmq = (Integer) map.get("mmq"); maxTime = (Date) map.get("end_date...
  • SpringBoot + Mybatis-Plus 查询数据库返回Map类型时,将值为NULL的key给过滤掉,没有返回,但是在前台实体类以及其他判断中需要用到该key。 解决办法,修改yaml文件,新增如下配置 在增加了以上配置后,Map里就...
  • java中将数据库中数据赋值给Map对象

    千次阅读 2017-01-26 22:26:34
    java中将数据库中数据直接赋值给Map对象,目的是为了方便取值,这种方式需要用到spring框架。 主要代码如下: 1.处理数据是实现类 GetUserDataServiceImp.java package com.service.Imp; import java.util.List; ...
  • 看到好多人问如何把从数据库查询出的结果保存为List 今天研究了一下,如果有说的不对的请给予指正。 ResultSet 是如何获得的在这就不再阐述了,网上一搜一堆。 当我们获得ResultSet rs 时可以转化为...
  • [code="java"] public void getIpOption() { //获取参数 String resTypeId = (String) this.... //获取数据集,从数据库中获得list List list = sysLogService.getIpOption...
  • 使用Spring提供的JdbcTemplate类对数据库进行操作的时候,直接使用如下所示的系列重载方法需要特别注意返回的Map类型。 org.springframework.jdbc.core.JdbcTemplate 1 2 3 publicMap&...
  • SSM 通过Map类型传入到数据库

    千次阅读 2018-10-17 18:22:30
    记录一下  Contoller类: public String toSubmitOrder(Model model,Integer [] detail_id,Integer user_id){ //detail_id为前台传入的数组,user_id也为前台传入的数据,int类型。... //创建map对象 ...
  • 在实际开发中遇到了使用resultMap返回数据时,表里数据为null就不返回该字段,对于前端一些组件的数据绑定来说不太方便 解决方法: 在spring boot整合mybatis中,可以加入 mybatis: configuration: call-...
  • 数据库查询

    2019-04-16 11:34:36
    当前项目配置的数据库与实际需要查询数据库不一致时 private JdbcTemplate getTemplate (String url, String userName, String password, String databaseType,String driverClassName) { if (url == null || ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 444,892
精华内容 177,956
关键字:

数据库查询出来怎么用map