StudentQuery:

package Student;

import java.util.ArrayList;
import java.util.List; public class StudentQuery {
private Integer id;
private String no;
private String name;
private String age;
private float score;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public float getScore() {
return score;
}
@Override
public String toString() {
return "StudentQuery [id=" + id + ", no=" + no + ", name=" + name
+ ", age=" + age + ", score=" + score + ", fields=" + fields
+ "]";
}
public void setScore(float score) {
this.score = score;
} private String fields;
public String getFields() {
return fields;
}
public void setFields(String fields) {
this.fields = fields;
} public class FieldOrder{
private String field; //id , name imgUrl
private String order; // desc asc public FieldOrder(String field, String order) {
super();
this.field = field;
this.order = order;
}
public String getField() {
return field;
}
public void setField(String field) {
this.field = field;
}
public String getOrder() {
return order;
}
public void setOrder(String order) {
this.order = order;
}
} //orderby 集合
private List<FieldOrder> fieldOrders = new ArrayList<FieldOrder>(); //按照Id排序
public void orderbyId(boolean isAsc){
fieldOrders.add(new FieldOrder("id",isAsc == true ? "asc" : "desc"));
} private Integer pageNo = 1;
private Integer startRow;
private Integer pageSize = 10;
public Integer getPageNo() {
return pageNo;
}
public void setPageNo(Integer pageNo) {
this.startRow = (pageNo - 1) * pageSize;
this.pageNo = pageNo;
}
public Integer getStartRow() {
return startRow;
}
public void setStartRow(Integer startRow) {
this.startRow = startRow;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.startRow = (pageNo - 1) * pageSize;
this.pageSize = pageSize;
}
}

mapper语句

  <sql id="studentSelector">
select
<if test="fields != null">
${fields}
</if>
<if test="fields == null">
id, no, name, age, score
</if>
from student
</sql> <sql id="studentOrderBy">
<if test="fieldOrders != null and fieldOrders.size > 0">
order by
<foreach collection="fieldOrders" item="fieldOrder" separator=",">
${fieldOrder.field} ${fieldOrder.order}
</foreach>
</if>
</sql> <sql id="studentLimit">
<if test="startRow != null">
limit ${startRow}, ${pageSize}
</if>
</sql> <select id="getStudentList" parameterType="StudentQuery" resultMap="BaseResultMap">
<include refid="studentSelector"></include>
<include refid="studentOrderBy"></include>
<include refid="studentLimit"></include>
</select>

test

public class Test {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext-dao.xml");
StudentMapper studentMapper = (StudentMapper) ctx.getBean("studentMapper");
StudentQuery studentQuery = new StudentQuery();
studentQuery.setFields("id, name");
studentQuery.orderbyId(false);
studentQuery.setPageNo(2);
studentQuery.setPageSize(2);
List<Student> students = studentMapper.getStudentList(studentQuery);
for(Student s : students){
System.out.println(s);
}
}
}

mapper分页排序指定字段查询模板的更多相关文章

  1. MySQL select 语句指定字段查询

    指定字段查询 SELECT 语法 SELECT [ALL | DISTINCT] {* | table.* | [table.field1[as alias1][,table.field2[as al ...

  2. 在使用mybatis中指定字段查询

    1:需求:查询学过“叶平”老师所教的所有课的同学的学号.姓名: List<Map<String,Object>> selectYepingAllCourse(@Param(&q ...

  3. mybatis-plus查询指定字段

    show me the code :mybais-plus版本:3.1.1 1,排除某些字段,可以同时排除多个字段排除多个字段写法: .setEntity(new User()) .select(c ...

  4. mysql查询order by 指定字段排序

    当MySQL查询时排序的字段不是数字时而是汉字的时候也可以用when  then 来指定排序. 列如yewu_check表的status 字段不是0,1,2而是汉字待办,已办,退回.可以如下写法: S ...

  5. spring mongodb分页,动态条件、字段查询

    使用MongRepository public interface VideoRepository extends MongoRepository<Video, String> { Vid ...

  6. 对于Oracle中分页排序查询语句执行效率的比较分析

    转自:http://bbs.csdn.net/topics/370033478 对于Oracle中分页排序查询语句执行效率的比较分析 作者:lzgame 在工作中我们经常遇到需要在Oracle中进行分 ...

  7. 把一个select查询结果插入到一个表(可选指定字段和值实例)

    把一个select查询结果插入到一个表(可选指定字段和值实例) insert into  bak (cc,yf) select cc,9 from ket insert into bak (cc,yf ...

  8. lucene 查询+分页+排序

    lucene 查询+分页+排序 1.定义一个工厂类 LuceneFactory 1 import java.io.IOException; 2 3 import org.apache.lucene.a ...

  9. Navicat查询哪些表有指定字段名

    通常需要查询某个字段来自于哪张表,在navicat中没有直接查哪些表有指定字段名的功能,只能用sql来查. 1.(按字段名查表)查询哪些表有指定字段名(比如查字段名article_id)的SQL: S ...

随机推荐

  1. JSP简单练习-获取表单数据

    在JSP中,server端程序与client交互最经常使用的方法就是採用表单提交数据.表单提交的方法主要有两种,一种是get方法.还有一种是post方法.两者最大的差别:使用get方法提交的数据会显示 ...

  2. 遍历GridView

    ].Text+"--------------");                }            }

  3. C++中const简介及用法

    1.const简介 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助. Const 是C++中常用的类型修饰 ...

  4. SQL server 和Oracle 序列

    1,SQL Server序列创建与使用 BEGIN IF EXISTS (SELECT * FROM sysobjects WHERE name = 'event_seq') DROP SEQUENC ...

  5. FAT下的winhex数据恢复

    一·我在自己的U盘中建一个一个文件abc.word,然后删除 二·用winhex打开需要恢复的磁盘 我这是U盘 I:按确定打开它 三.来到它的根目录下 四·查找文件名,找到文件目录项 文件起始簇号:5 ...

  6. jQ中prop与attr的区别

    1.prop适用于HTML元素本身就带有的固有属性 2.attr适用于HTML元素我们自定义的属性 <input type="checkbox" value="复选 ...

  7. poj 1091 跳骚

    /** 题意: 求对于小于m的n个数, 求x1*a1 + x2*a2+x3*a3........+xn*an = 1 即求 a1,a2,a3,....an 的最大公约数为1 , a1,a2....an ...

  8. Rem & Viewport

    Rem布局 rem就是给根元素设置一个基准值 然后其他元素都以这个基准值作为单位 那么就可以在不同的手机上做出相同比例的元素了 事实上和百分比是同样的道理 网易和淘宝的rem 参考 http://ww ...

  9. IIS7内建账号,应用程序池

    在IIS7以前的IIS版本中有一个本地帐号,是在安装时创建的,叫做 IUSR_MachineName.一旦启用匿名身份认证,这个IUSR_MachineName帐号就是IIS默认使用的身份(ident ...

  10. Android 5.x新特性之elevation(阴影),tinting(着色)以及clipping(剪裁)

    快过年了,公司也没事做了, 自己也闲了下来,一天天呆着真没意思,闲来没事自己研究研究了Google I/O 2014 发布 Material Design设计,人性化的风格,丰富的色彩,使人机交互更完 ...