上一篇介绍了入门基础篇SpringDataJPA访问数据库.本篇介绍SpringDataJPA进一步的定制化查询,使用JPQL或者SQL进行查询.部分字段映射.分页等.本文尽量以简单的建模与代码进行展示操作,文章比较长,包含查询的方方面面.如果能耐心看完这篇文章,你应该能使用SpringDataJPA应对大部分的持久层开发需求.如果你需要使用到动态条件查询,请查看下一篇博客,专题介绍SpringDataJPA的动态查询. 一.入门引导与准备 JPQL(JavaPersistence Query…
需求/背景 假设有一个用户表, 对应的用户实体: public class User { @Id Long id; //姓名 String name; //性别,男0女1 String sex; //年龄 Integer age; //部门, 用户-部门多对一关系 @ManyToOne Department dept; } 前端需要实现这样的查询: 其中部门支持多选;  实现 分析 jpa里的复杂查询一般使用@Query完成, 但是@Query并不支持动态过滤条件, 过滤条件在编译时就已经确定;…
第一次学习Mybatis.net,在博客园也找到好多资料,但是在配置成功之后也遇到了一些问题,尤其是在动态SQl拼接时候,这里把遇到的问题还有自己写的一个Demo贴出来,希望能帮到新手,有不适合的地方也希望大家指出,大家互相学习,共同进步. 首先我们需要下载IBatisNet程序包,这里就不多说了 一.创建一个MVC4的Web应用程序,并引用我们下载的IBatisNet程序包中的IBatisNet.DataMapper.dll,这里我只引用了这一个,log4net我没有引用也没有配置使用,全部程…
WebService和AngularJS实现模糊过滤查询   [概要] 网上看到一个不错的帖子,用WebService获取json,然后在前端使用AngularJs进行过滤搜索,看完文章后,按自己的想法,写了一个demo,给大家讨论参考,本人技术一般,还望大家多加指点. [术语] WebService:是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布式的互操作的应用程…
mysql模糊匹配查询like,regexp,in   摘要 内容比较简单,无摘要.   关键词 模糊查询  like  regexp  in  contact   正文 下图是示例用到的数据表信息 MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi.grep和sed的扩展正则表达式模式匹配的格式   一.SQL模式 SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符).在 MySQL中,SQL的模式缺省是忽略大小写的. 注意在你使用S…
MyBatis系列四 之 智能标签进行查询语句的拼接 使用Foreach进行多条件查询 1.1 foreach使用数组进行多条件查询 在MyBatis的映射文件中进行如下配置 <!--根据数组进行多条件查询 --> <select id="findByForeachAraay" resultType="Student"> select * from Student <if test="array.length>0&quo…
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) Apache POI读取excel文件数据 1.1 快递员的条件分页查询 --关键 需要将查询条件 和分页条件都绑定到一次请求中 1. 提供工具方法:将表单序列化为json对象 //工具方法:将表单中输入项格式化为json对象 {"input的name":"input的value…
避免SQL全表模糊查询查询   1.模糊查询效率很低: 原因:like本身效率就比较低,应该尽量避免查询条件使用like:对于like %...%(全模糊)这样的条件,是无法使用索引的,全表扫描自然效率很低:另外,由于匹配算法的关系,模糊查询的字段长度越大,模糊查询效率越低. 解决办法:首先       1.模糊查询效率很低: 原因:like本身效率就比较低,应该尽量避免查询条件使用like:对于like ‘%...%’(全模糊)这样的条件,是无法使用索引的,全表扫描自然效率很低:另外,由于匹配…
  TP5 查询 字符串条件如何实现 当查询条件是 (1,3,8) ,3,4) 这种情况改如何查询呢?   主要用到FIND_IN_SET $where[ ]=>['exp',Db::raw("FIND_IN_SET(2, industry)")]]   $industry = Db::table('admin')->where(['id'=>$uid])->value('industry');                 $industry  =explo…
Oracle 查询 in条件个数大于1000的解决方案,我所了解的有如下四种: 1. 把in分组再or: 思路:如果list的长度为2000,可以500个分一组,就有4个组,这4个组之间再or即可. 2. 把in的每个条件分别or 思络:这个和第1个其实原理就是一样的,一开始没想把它当做一个方案,但是我发现jpa-spec框架就是使用的这个方案,所以暂且把它加进来. 3. 使用oracle临时表 思络:借助oracle临时表, 首先开启事务,然后把集合插入临时表,再进行查询使用in或exists…