Spring框架下分页功能的java实现(使用注解)

分页功能

之前写分页功能时,网上的很多都不完整,不容易看明白,解释不清楚。现在自己实现了之歌功能,便详细写写,供大家参考。

注解层

用于自动定位到数据库进行数据的查找。
<关联表>

package cn.itsource.annotation;


import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Documented
/*
 * @Target表示当前注解的适用目标
 * 	ElementType.TYPE 表示适用于类和接口
 *  ElementType.FIELD 表示适用于字段(成员变量)
 *  ElementType.METHOD 表示适用于方法	
 */
@Target(ElementType.TYPE)
/*
 * @Retention表示当前注解对象的生命周期
 * 	RetentionPolicy.SOURCE 生命周期最短,仅在源码中有效
 *  RetentionPolicy.CLASS 生命周期居中, 在源码和编译后的字节码中有效
 *  RetentionPolicy.RUNTIME 生命周期最长,保留到代码运行时
 */
@Retention(RetentionPolicy.RUNTIME)
public @interface Table {
	//关联表名称或视图名称
	String value();
}

<关联列>

package cn.itsource.annotation;


import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Column {
	
	//domain实体类属性关联的表或视图的列名称
	String value();
	
	//SQL语句的比较运算符  < <= > >= = != like等,默认值是“=”
	String operation() default "=";

}

以Job对象为例

package cn.itsource.domain;

import java.io.Serializable;
import java.util.Date;

import cn.itsource.annotation.Column;
import cn.itsource.annotation.Table;

@Table("v_job")//select * from xxxx where 1=1
public class Job implements Serializable{
	
	private Long id;
	//职位名称  and jobName like '%+字段值+%'
	@Column(value="jobName",operation="like")
	private String jobName;
	//外键,关联t_address表的主键
	private Long addrId;
	//招聘人数
	private Integer number;
	//薪资待遇
	private Integer salary;
	//职位描述
	private String intro;
	//任职要求
	private String requires;
	//1表示全职  0表示兼职  and jobType = 字段值
	@Column("jobType")
	private Integer jobType;
	//是否启用  1表示启用  0表示禁用
	@Column("isEnabled")
	private Integer isEnabled;
	//发布时间
	private Date publishTime;
	//工作地名
	private String addrName;
	
	//添加一个职位详情静态页面路径字段[后台]
	private String detailsPath;
	//添加一个职位详情静态页面路径字段[前台]
	private String detailsPath2;
	
	
	//薪资范围搜索
	@Column(value="salary",operation=">=")
	private Integer salary1;
	@Column(value="salary",operation="<=")
	private Integer salary2;
	public Integer getSalary1() {
		return salary1;
	}
	public void setSalary1(Integer salary1) {
		this.salary1 = salary1;
	}
	public Integer getSalary2() {
		return salary2;
	}public void setSalary2(Integer salary2) {
		this.salary2 = salary2;
	}
	
	
	
	
	public Strin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值