精华内容
下载资源
问答
  • Android Realm数据库多条件查询

    千次阅读 2018-08-01 16:17:05
    前面项目有用到本地数据库,处理的数据量也有点大,然后就用到了realm,现在在这里记录下多条件查询。。。 引用包什么的,实体类该怎么写这里就不说了,就说说怎么进行多条件查询 比如是你要查询用户(以姓李开头的...

    前面项目有用到本地数据库,处理的数据量也有点大,然后就用到了realm,现在在这里记录下多条件查询。。。

    引用包什么的,实体类该怎么写这里就不说了,就说说怎么进行多条件查询

    比如是你要查询用户(以姓李开头的,并且要是湖南省或者是上海市的,兴趣爱好是 读书和听音乐的人)

      sql如下:

    RealmQuery<Users> alls = mRealm.where(Users.class);
    alls.beginsWith("userName", "李");//以什么开头
    ///湖南省或者是上海市
    alls.beginGroup();
    alls.equalTo("province", "湖南省");
    alls.or().equalTo("province", "上海市");
    alls.endGroup();
    //兴趣爱好是 读书和听音乐
    alls.beginGroup();
    alls.contains("field", "读书");
    alls.contains("field", "听音乐");
    alls.endGroup();

    //最后查询符合条件的所有用户

    alls.findAll();

    好了,如果你也需要用到多条件查询数据,不妨试试,哈哈哈。。

    这里面要注意的条件 是或者关系还是并且关系,,realm里面默认就是并且的关系,或者关系就用or

     

     

    展开全文
  • SpringBoot整合Mybatis实现对数据库多条件查询以及踩过的坑 SpringBoot对数据库操作有多种方式,这里主要介绍的是整合Mybatis并且是采用非注解的方法实现的对数据库多条件查询的方式,在具体的功能实现时,...

    SpringBoot整合Mybatis实现对数据库的多条件查询以及踩过的坑

    SpringBoot对数据库操作有多种方式,这里主要介绍的是整合Mybatis并且是采用非注解的方法实现的对数据库的多条件查询的方式,在具体的功能实现时,遇到了查询数据为空的情况,在下文一并做出解答。

    1 SpringBoot对Mybatis的整合

    1.1 首先需要写好mybatis的配置文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration >
    ​
    ​
    ​
    </configuration>

    1.2 在SpringBoot的配置文件application.properties或者是application.yml文件中进行配置

    mybatis:
      config-location: classpath:mybatis/mybatis-config.xml   #这是mybatis的配置文件的路径
      mapper-locations: classpath:mybatis/mapper/*.xml        #这是mappper的路径,*.xml表示包含在该路径下的所有xml文件

    2 数据库的设计

    2.1 数据库中表的设计

    数据库的表名为equipment,具体的字段以及存储的信息如下

     

    2.2 实体类的设计

    package com.atguigu.springboot.entities;
    ​
    import org.springframework.boot.autoconfigure.domain.EntityScan;
    ​
    import java.util.Date;
    ​
    ​
    ​
    public class Equipment {
        private String eid;
        private String ename;
        private String estatic;
        private Integer espace;
        private String ecode;
        private Date etime;
    ​
        public String getEid() {
            return eid;
        }
    ​
        public void setEid(String eid) {
            this.eid = eid;
        }
    ​
        public String getEname() {
            return ename;
        }
    ​
        public void setEname(String ename) {
            this.ename = ename;
        }
    ​
        public String getEstatic() {
            return estatic;
        }
    ​
        public void setEstatic(String estatic) {
            this.estatic = estatic;
        }
    ​
        public Integer getEspace() {
            return espace;
        }
    ​
        public void setEspace(Integer espace) {
            this.espace = espace;
        }
    ​
        public String getEcode() {
            return ecode;
        }
    ​
        public void setEcode(String ecode) {
            this.ecode = ecode;
        }
    ​
        public Date getEtime() {
            return etime;
        }
    ​
        public void setEtime(Date etime) {
            this.etime = etime;
        }
    ​
        public Equipment(String eid, String ename, String estatic, Integer espace, String ecode, Date etime) {
            this.eid = eid;
            this.ename = ename;
            this.estatic = estatic;
            this.espace = espace;
            this.ecode = ecode;
            this.etime = etime;
        }
    ​
        public Equipment(){
    ​
        }
    ​
        @Override
        public String toString() {
            return "Equipment{" +
                    "eid='" + eid + '\'' +
                    ", ename='" + ename + '\'' +
                    ", estatic='" + estatic + '\'' +
                    ", espace=" + espace +
                    ", ecode='" + ecode + '\'' +
                    ", etime=" + etime +
                    '}';
        }
    ​
        
    }
    ​

    3 多条件查询

    3.1 页面设计(equipment.html)

    在设计的过程中使用了bootstrap框架,下面仅给出核心代码以及显示效果

    //查找的表单设计
    <form class="form-inline" th:action="@{/find_equipment_required}" method="post">
         <div class="form-group">
            <label>设备名称:</label>
            <input name="ename" type="text" class="form-control"  placeholder="请输入设备名称">
         </div>
         <div class="form-group">
            <label>设备ID:</label>
            <input type="text" name="eid" class="form-control" placeholder="请输入设备ID">
         </div>
         <div class="form-group">
            <label>状态:</label>
            <input type="text" name="estatic" class="form-control"  placeholder="请输入设备状态">
         </div>
         <div class="form-group">
            <label>版本:</label>
            <input type="text" name="ecode" class="form-control"  placeholder="请输入设备版本">
         </div>
            <button type="submit" class="btn btn-default">查找</button>
    </form>
    ​
    //显示设计
    <div class="table-responsive" style="clear: both;margin-top: 10px">
        <table class="table table-striped table-sm">
           <thead>
            <tr>
                 <th>设备ID</th>
                 <th>设备名称</th>
                 <th>状态</th>
                 <th>检测间隔(min)</th>
                 <th>设备版本</th>
                 <th>上传时间</th>
             </tr>
           </thead>
           <tbody>
             <tr th:each="equip:${equipment}">
                <td th:text="${equip.eid}"></td>
                <td>[[${equip.ename}]]</td>
                <td th:text="${equip.estatic}"></td>
                <td th:text="${equip.espace}"></td>
                <td th:text="${equip.ecode}"></td>
                <td th:text="${#dates.format(equip.etime,'yyyy-MM-dd hh:mm:ss')}"></td>
             </tr>
            </tbody>             
        </table>
    </div>

     

    3.2 Controller设计

    @PostMapping("/find_equipment_required")
        public String find_equipment_required(@RequestParam("ename") String ename,
                                              @RequestParam("eid") String eid,
                                              @RequestParam("estatic") String estatic,
                                              @RequestParam("ecode") String ecode,
                                              Model model){
            Equipment equip=new Equipment();
            equip.setEname(ename);
            equip.setEid(eid);
            equip.setEstatic(estatic);
            equip.setEcode(ecode);
            Collection<Equipment>equipment=equipmentDao.getRequired(equip);
            System.out.println(equipment);
            model.addAttribute("equipment",equipment);
            return "equipment/equipment";
    ​
        }

     

    3.3 Dao层设计

    package com.atguigu.springboot.dao;
    ​
    import com.atguigu.springboot.entities.Equipment;
    import com.atguigu.springboot.mapper.EquipmentMapper;
    import com.atguigu.springboot.service.EquipmentService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Repository;
    ​
    import java.util.Collection;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    ​
    @Repository
    public class EquipmentDao {
        @Autowired
        EquipmentService equipmentService;
    ​
        Map<String, Equipment> map=null;
    //    按照要求查询设备
        public Map<String,Equipment>getRequiredmap(Equipment equipment){
            map=new HashMap<>();
            List<Equipment> equipments=equipmentService.findByRequired(equipment);
            System.out.println(equipments.size());
            for(int i=0;i<equipments.size();i++){
                map.put(equipments.get(i).getEid(),equipments.get(i));
            }
            return map;
        }
    //    按照要求查询设备
        public Collection<Equipment>getRequired(Equipment equipment){
            this.getRequiredmap(equipment);
            return map.values();
        }
    ​
    }
    ​

    3.4 Service层设计

    package com.atguigu.springboot.service;
    ​
    import com.atguigu.springboot.entities.Equipment;
    import org.apache.ibatis.annotations.Param;
    import org.springframework.stereotype.Service;
    ​
    import java.util.List;
    import java.util.Map;
    ​
    ​
    public interface EquipmentService {
        //    按要求查找设备
        public List<Equipment> findByRequired(Equipment equipment);
    }
    ​
    ​
    //实现类
    package com.atguigu.springboot.service;
    ​
    import com.atguigu.springboot.entities.Equipment;
    import com.atguigu.springboot.mapper.EquipmentMapper;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    ​
    import java.util.List;
    @Service
    public class EquipmentServiceImpl implements EquipmentService {
        @Autowired
        EquipmentMapper equipmentMapper;
        @Override
        public List<Equipment> findByRequired(Equipment equipment) {
            return equipmentMapper.findByRequired(equipment);
        }
    }
    ​

    3.5 Mapper设计

    //Mapper类
    package com.atguigu.springboot.mapper;
    ​
    import com.atguigu.springboot.entities.Equipment;
    import org.apache.ibatis.annotations.Mapper;
    import org.apache.ibatis.annotations.Param;
    import org.springframework.stereotype.Repository;
    ​
    import java.util.List;
    import java.util.Map;
    ​
    @Repository
    public interface EquipmentMapper {
    //    按要求查找设备
    public List<Equipment> findByRequired(Equipment equipment);
    }
    //对应的mapper的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.atguigu.springboot.mapper.EquipmentMapper">
    ​
        <select id="findByRequired" parameterType="com.atguigu.springboot.entities.Equipment" resultType="com.atguigu.springboot.entities.Equipment">
            select * from equipment where 1=1
            <if test="ename !=null and ename !=''">
                and ename= #{ename}
            </if>
            <if test="eid !=null and eid !=''">
                and eid= #{eid}
            </if>
            <if test="estatic !=null and estatic !=''">
                and estatic= #{estatic}
            </if>
            <if test="ecode!=null and ecode !=''">
                and ecode= #{ecode}
            </if>
    ​
        </select>
    ​
    </mapper>

    4 遇到的问题以及解决

    4.1 问题

    多条件查询时并未在数据库中得到数据

    4.2 解决方法

    在对数据库的设计时,vachar类型的是utf-8类型,在多条件查询时由于输入的大多数是中文,所以查询不到数据。在对数据库的配置时需要特别注意加上?useUnicode=true&characterEncoding=UTF-8

    spring:
      datasource:
        username: root
        password: 123456
        url: jdbc:mysql://localhost/jdbc?useUnicode=true&characterEncoding=UTF-8 
    ​
        driver-class-name: com.mysql.jdbc.Driver

    5 结果展示

    输入页面

     

    结果页面

     

     

    展开全文
  • 数据库条件查询

    千次阅读 2016-12-18 16:45:07
    条件查询(select condition From table name where searchcondition)–1、比较运算符(=,,>,<,>=,)注意:<> 等价于 != --查询Student_info中所有女生信息 use Student_412 select * From Student_info where...

    –条件查询(select condition From table name where searchcondition)

    –1、比较运算符(=,<>,>,<,>=,<=)注意:<> 等价于 !=

        --查询Student_info中所有女生信息
        use Student_412
        select * From Student_info 
        where Sgender = '女'

    –2、逻辑运算符(NOT,AND,OR)

        --查询Student_info表中年龄超过17岁的女生信息
        use Student_412
        select * From Student_info 
        where (year(getdate()) - year(Sbirth) > 17) and Sgender = '女' 

    –3、范围运算符

    格式:列名[NOT]BETWEEN 开始值 AND 结束值
    说明:列名必须在开始值的结束值之间  
    等效:列名>=开始值 and 列名 <= 结束值
         列名<开始值 or 列名 > 结束值(选NOT)
    
       --查询成绩在80和100之间的学号和课程信息,成绩信息
          m1:
           use Student_412
           select * From SC
           where Grade between 80 and 100        
    
          m2:
           use Student_412
           select * From SC
           where Grade >= 80 and Grade <= 100
    
    --查询成绩不在80100之间的学号和课程信息,成绩信息
          m1:
           use Student_412
           select * From SC
           where Grade < 80 and Grade > 100 
          m2:
           use Student_412
           select * From SC
           where Grade not between 80 and 100

    –限制查询数据的范围

     --查询学号为20100101和20110103同学的信息
          m1:
           use Student_412
           select * From student_info
           where Sid = '20110101' or Sid '20110103'
          m2:
           use Student_412
           select * From student_info
           where Sid in('20110101','20110103')

    –4、模式匹配运算符(模糊查询)

    (%):包括含0或多个字符的任意字符串

      --查询所有姓‘王’的学生的信息
       use Student_412
       select * From Student_info
       where Sname like '王%'
      --查询课程名中包含‘应用’的信息
       use Course_info
       select * From Course_info
       where Cname like '%应用%'

    (_):任意单个字符(a_c表示以a开始c结束的三个)

       --查询姓‘陈’并且姓名共有两个字的同学的学号和姓名信息
       use Student_412
       select * From Student_info
       where Sname like '陈_'
       --查询姓‘陈’并且姓名共有两个字的同学的学号和姓名信息
       use Student_412
       select * From Student_info
       where Sname like '陈__'

    ([]):在指定范围(如[a-f]或者[abcdef]内任何单个字符)

      --查询姓‘陈’'张' ‘李’同学的学号和姓名信息
       m1:
          use Student_412
          select Sid,Sname 
          From Student_info
          where Sname like '王%' or Sname like '张%' or Sname like '李%'
       --查询姓‘陈’'张' ‘李’同学的学号和姓名信息
       m2:
          use Student_412
          select Sid,Sname 
          From Student_info
          where Sname like '[王张李]%'

    ([^]):不在指定范围(如[^a-f]或者[^abcdef]内任何单个字符)

      --查询不姓‘陈’'张' ‘李’的同学的学号和姓名信息
       m1:
          use Student_412
          select Sid,Sname 
          From Student_info
          where Sname not like '王%' and Sname like '张%' and Sname like '李%'
     --查询不姓‘陈’'张' ‘李’的同学的学号和姓名信息
       m2:
         use Student_412
          select Sid,Sname 
          From Student_info
          where Sname like [^王张李]%

    –空值(NULL)判断符
    –格式: IS[NOT]NULL

       --查询选修课程但是成绩为NULL的学生的信息
       use Student_412
       select * From SC
       where Grade is NULL
    展开全文
  • 数据库多表联查 Db::table('think_artist') -&amp;gt;alias('a') // alias 表示命名数据库的别称为a -&amp;gt;join('think_work w','a.id = w.artist_id') ...数据库 多条件查询 // 使用...

    数据库多表联查

    Db::table('think_artist')
    ->alias('a')	// alias 表示命名数据库的别称为a
    ->join('think_work w','a.id = w.artist_id')
    ->join('think_card c','a.card_id = c.id')
    ->select();
    

    数据库 多条件查询

    // 使用数组的形式查询数据,db是是数据库的助手函数,注意去掉前缀
    $data = db('cms_document')->where(array('cid'=>array("in","5,6")))->select();
    
    展开全文
  • access数据库进行数据查询的时候要注意,where后面的条件要加单引号:select * from 故障记录 where 故障现象代码='F001'多条件查询实现的代码如下:string sql = "select * from 故障记录 where"; if(textBox_...
  • 多条件查表数据库如何查询

    千次阅读 2017-01-16 14:38:32
    一、当遇到很多条件查询时,如下图情况: 二、数据库为: 1.条件表: 2.产品与条件的关联表 三、如何查表查出满足多种条件的产品id(product_id) 方法一:若只有两个条件的话,可以进行一次自表链接,...
  • 数据库多条件查询 CASE... WHEN

    千次阅读 2014-09-24 23:02:04
    CASE WHEN语句在DB2,ORACLE,SQL SERVER系列,SYBASE等大型数据库都受到支持,是标准的SQL语句. 可以这样子理解:CASE... WHEN... THEN ...ELSE ...END CASE WHEN 语法有两种情况: 第一种是CASE 后面不带表达式的; ...
  • sql语句动态拼接个查询条件查询数据库 问题描述: 公司开发中自己负责的模块业务需要根据用户选择内容去查询数据库,其中会计期间是必须的条件,默认为当前日期。用户只需要根据需要去输入就可以进行相关查询。...
  • 固定条件,直接查询数据库,把结果进行分页显示出来; 见博客 https://blog.csdn.net/qq_37591637/article/details/82951647 二、条件不定,查询数据库,把查询结果进行分页显示 如下图;包含四个条件,用户在...
  • LitePal Where 多条件查询 最近开发的一个APP本地数据存储使用的LitePal,用到了多条件查询,只用有个条件的查询比较好用。 DataSupport.where("name=?","张三").find(User.class); 多条件查询也很简单,把两个...
  • 安卓 想通过三个条件,城市,时间和类型对数据库中的数据进行查询 并且当其中某项为任何的时候,查询该项所有数据 例如;当城市=“任何城市”时,数据库中存储城市这一列的所有数据都要获取 应该如何编写数据库
  • python 数据库查询条件‘不等于’

    千次阅读 2018-10-11 15:46:46
    python 数据库查询条件‘不等于’ 当在做数据库查询的时候,想根据业务需求进行条件的筛选或过滤, 但是django封装的数据库语句中没有 ‘不等于’ 查询操作。 例如,通过以下语句进行‘不等于查询’ data = User…...
  • jsp链接数据库实现查询功能,通过选择查询条件,将数据库中符合条件的数据显示在表格中
  • 全部数据查询 ... 在app1/urls.py中添加下面路径 3.在app1/views.py文件中添加下面语句 4.在app1/models.py中添加下面语句,用于显示数据 ...6.运行页面,出现下图代表成功 ...条件查询 在上面添加数据的基础上,我...
  • mysql数据库多条件多级排序

    千次阅读 2017-07-07 17:17:05
    数据库查询时,常常需要排序,而有时排序条件可能有个。 如数据库: a b 1 103 1 101 2 201 2 203 1 102 2 202 排序后: a b 1 103 1 102 1 101 2 203 2 202 2
  • 详述数据库多查询

    千次阅读 2019-08-17 16:54:49
    如果依据个表之间列关系进行内连接,查询结果集仅包括满足连接条件的数据行。内连接分为等值连接、不等值连接以及自然连接,其中等值连接最为常见。 等值连接:在连接条件中使用等号(=)运算符比...
  • 在oracle数据库中:查询语句 select (参数) from 表A where A条件 and B 条件; 但是在B条件中会需要进行类似于三元判断,可以用如下代码 假如三目运算这么写 x?y:z 对应的条件表达式这么写 (x and y or z and !x)...
  • 数据库条件查询很慢的时候,如何优化 1.建索引(a 提高查询检索的性能b 创建唯一索引c 创建主键d 归类) 2.减少表之间的关联 3.优化sql,尽量让sql很快定位数据,不要让sql做全表查询, 应该走索引,把...
  • 一、数据库表连接查询,inner的不同用法在pg数据库中建立两张表:t_a和t_b如下所示:t_a:t_b:1、inner join(内连接)inner join就是根据on字段标示出来的条件查询关联的表中符合条件的数据,并把他前部都显示...
  • Django-mysql数据库条件查询

    千次阅读 2018-12-04 21:10:31
    条件查询 参数说明 BookInfo:为图书模型表 id主键, btitle书名, bpup_date出版日期, bread阅读量, bcomment评论量 HeroInfo为应用模型表 hanme英雄名字, hgender性别, hcomment描述, hbook关联图书表的外键 ...
  • 数据库查询条件是list的集合

    千次阅读 2019-05-21 15:12:12
    xml collection: 传递过来的name 参数集合, item:遍历的每一个子项, open:动态拼接子项的前缀, separator:分割字符, close:结尾拼接。 dao service controller
  • 数据库中的查询总结

    万次阅读 多人点赞 2018-08-31 21:12:56
    数据库在单个表里操作其实很简答,但是涉及在张表里寻找数据的时候,难度会大大增加,这里解释一些表联合查询常用的操作。 一、join操作 在数据库查询中,表连接查询是一大难点,也是查询里的重点。...
  • Spring boot如何通过List为查询条件查询数据库 前言 这是小编的第一篇博客,想想还有点激动,咋们废话不说,赶快开始我们的主要内容 主体 首先要解决这个问题咋们必须要清楚两个问题 如何写sql语句。 作为...
  • mongodb数据库,某个表内有个字段,其中4个字段为属性值,要求删除4个属性值完全相同的数据,例某两条数据的c1,c2,c3,c4四个属性各自一 一对应且相同,要求只保留最新的一条,请问用Mongodb语句该如何操作,目前...
  • mvc结构 连接数据库 类色图书馆管理系统 但不要那么复杂的 我只要里面的分类查询显示 这一块 简单的就行 给例子 谢谢 大神了哈!!!!
  • 数据库多查询关联查询SQL语句

    千次阅读 2019-09-11 20:15:09
    意思就是向左关联某个表记录,以左边的那个表的记录为基准,通过关联条件,将关联表的相关符合要求的记录一起找出来,找出来的记录条数就是左边表的记录数 具体用法如下: SELECT column_name(s) FROM table_name1...
  • Access数据库多表联合查询

    万次阅读 2013-10-29 12:26:32
    Access 数据库多表联合查询 1、Access 数据库多表联合查询,每次连接之前须将连接符前面的内容放在括号里面,示例如下:  select 表a.字段1,表b.字段1,表c.字段1,表d.字段1 from ((表a inner join 表b on ...
  • 之前做的查询功能今天被发现你速度缓慢 ...在查询的时候大部分都是表联查吧,单查一个表的情况很少 ,在俩个表以及俩个表以上联查的时候肯定会有一个主表(大部分条件都是在个表),其他的表基本就是一个条件等于一下...
  • 最近项目中需要用到mongodb数据库进行联合查询,百度了一下都只有mongodb语句的联合查询方法,没有通过python来进行查询的。 可能是因为mongodb数据库不是关系型数据库,大家对于它的关系也用不到那么。 ...
  •  所以在explian上的时候,in()和>,<,between and都显示的是type:range,其实是有区别的,区别在于使用in之后,叫做“个等值条件查询”,后面的索引列是可以继续使用索引的,但是“值的范围查询”(>,<,between...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 643,479
精华内容 257,391
关键字:

对数据库多条件查询