1、BaseService
package dataSource;
import data.page.PageImpl;
import data.page.Pageable;
import java.io.Serializable;
import java.util.List;
/**
* @author henry
* @version V1.0
* @Title: BaseService
* @Package com.txy.dataSource
* @Description: 公用service接口
*/
public interface BaseService<T,ID extends Serializable> {
int add(T model);
int adds(List<T> modelList);
int update(T model);
int updates(List<T> modelList);
T queryById(ID id);
T queryModelByModel(T model);
List<T> queryList(T model);
PageImpl<T> queryListForPageModel(T model, Pageable pb);
int queryCount(T model);
}
2、BaseServiceImpl
package dataSource.impl;
import data.page.PageImpl;
import data.page.Pageable;
import dataSource.BaseMapper;
import dataSource.BaseService;
import java.io.Serializable;
import java.util.List;
/**
* @author henry
* @version V1.0
* @Title: BaseServiceImpl
* @Package dataSource.impl
* @Description: 公用service抽象实现类
*/
public abstract class BaseServiceImpl<T,ID extends Serializable> implements BaseService<T,ID> {
public abstract BaseMapper<T, ID> getMapper();
public int add(T model) {
int i = 0;
try{
i = getMapper().add(model);
}catch(Exception e){
System.out.println(e.getMessage());
}
return i;
}
public int adds(List<T> modelList) {
int i = 0;
try{
i = getMapper().adds(modelList);
}catch(Exception e){
System.out.println(e.getMessage());
}
return i;
}
public int update(T model) {
int i = 0;
try{
i = getMapper().update(model);
}catch(Exception e){
System.out.println(e.getMessage());
}
return i;
}
public int updates(List<T> modelList) {
int i = 0;
try{
i = getMapper().updates(modelList);
}catch(Exception e){
System.out.println(e.getMessage());
}
return i;
}
public T queryById(ID id) {
return getMapper().queryById(id);
}
public T queryModelByModel(T model){
return getMapper().queryModelByModel(model);
}
public List<T> queryList(T model) {
return getMapper().queryList(model);
}
public PageImpl<T> queryListForPageModel(T model, Pageable pb) {
// 查询所有数据count
int totalElements = getMapper().queryCount(model);
// 查询list分页数据
List<T> list = getMapper().queryListForPageModel(model, pb);
return new PageImpl(pb,totalElements,list);
}
public int queryCount(T model) {
return getMapper().queryCount(model);
}
}
3、BaseMapper
package dataSource;
import data.page.Pageable;
import org.apache.ibatis.annotations.Param;
import java.io.Serializable;
import java.util.List;
/**
* @author henry
* @version V1.0
* @Title: BaseMapper
* @Package com.txy.dataSource
* @Description: 公用mapper接口
*/
public interface BaseMapper<T,ID extends Serializable> {
int add(T model);
int adds(List<T> modelList);
int update(T model);
int updates(List<T> modelList);
T queryById(ID id);
T queryModelByModel(@Param("model") T model);
List<T> queryList(@Param("model") T model);
List<T> queryListForPageModel(@Param("model") T model, @Param("page") Pageable pb);
int queryCount(@Param("model") T model);
}
本代码段中使用分页类代码
1、Page
package data.page;
import java.util.List;
/**
* @author henry
* @version V1.0
* @Title: Page
* @Package data.page
* @Description: 页内容。
*/
public interface Page<T> {
/**
* 当前页码
*/
int getNumber();
/**
* 页大小
*/
int getSize();
/**
* 总页数
*/
int getTotalPages();
/**
* 总记录条数
*/
int getTotalElements();
/**
* 获取内容
*/
List<T> getContent();
/**
* 是否有内容
*/
boolean hasContent();
/**
* 下一页
*/
Pageable nextPageable();
/**
* 前一页
*/
Pageable previousPageable();
boolean isLastPageNumber();
}
2、Pageable
package data.page;
/**
* @author henry
* @version V1.0
* @Title: Pageable
* @Package data.page
*/
public class Pageable {
private int pageNumber;
private int pageSize;
private int index;
private int length;
public Pageable(int pageNumber, int pageSize) {
this.pageNumber = pageNumber;
this.pageSize = pageSize;
this.index = (pageNumber - 1) * pageSize;
this.length = pageSize;
}
public int getPageNumber() {
return pageNumber;
}
public int getPageSize() {
return pageSize;
}
public int getLength() {
return length;
}
public int getIndex() {
return index;
}
public Pageable next() {
return new Pageable(pageNumber + 1, pageSize);
}
public Pageable previousOrFirst() {
if (pageNumber == 1) {
return this;
}
return new Pageable(pageNumber - 1, pageSize);
}
public Pageable first() {
return new Pageable(1, pageSize);
}
}
3、PageImpl
package data.page;
import com.google.gson.annotations.Expose;
import java.util.List;
/**
* @author henry
* @version V1.0
* @Package data.page
* @Description: 分页实现。
*/
public class PageImpl<T> implements Page<T> {
@Expose
private int number;
@Expose
private int size;
@Expose
private int totalElements;
@Expose
private int totalPages;
@Expose
private List<T> content;
private transient Pageable pageable;
public PageImpl(Pageable pageable, int totalElements, List<T> content) {
number = pageable == null ? -1 : pageable.getPageNumber();
size = pageable == null ? -1 : pageable.getPageSize();
this.totalElements = totalElements;
this.totalPages = pageable == null ? 1 : (totalElements + size - 1) / size;
this.content = content;
this.pageable = pageable;
}
public int getNumber() {
return number;
}
public int getSize() {
return size;
}
public int getTotalPages() {
return totalPages;
}
public int getTotalElements() {
return totalElements;
}
public List<T> getContent() {
return content;
}
public boolean hasContent() {
return content != null && content.size() > 0;
}
public Pageable nextPageable() {
return pageable.next();
}
public Pageable previousPageable() {
return pageable.previousOrFirst();
}
public boolean isLastPageNumber() {
return pageable.getPageNumber()==totalElements/pageable.getPageSize()+1;
}
}
package dataSource;
import data.page.PageImpl;
import data.page.Pageable;
import java.io.Serializable;
import java.util.List;
/**
* @author henry
* @version V1.0
* @Title: BaseService
* @Package com.txy.dataSource
* @Description: 公用service接口
*/
public interface BaseService<T,ID extends Serializable> {
int add(T model);
int adds(List<T> modelList);
int update(T model);
int updates(List<T> modelList);
T queryById(ID id);
T queryModelByModel(T model);
List<T> queryList(T model);
PageImpl<T> queryListForPageModel(T model, Pageable pb);
int queryCount(T model);
}
2、BaseServiceImpl
package dataSource.impl;
import data.page.PageImpl;
import data.page.Pageable;
import dataSource.BaseMapper;
import dataSource.BaseService;
import java.io.Serializable;
import java.util.List;
/**
* @author henry
* @version V1.0
* @Title: BaseServiceImpl
* @Package dataSource.impl
* @Description: 公用service抽象实现类
*/
public abstract class BaseServiceImpl<T,ID extends Serializable> implements BaseService<T,ID> {
public abstract BaseMapper<T, ID> getMapper();
public int add(T model) {
int i = 0;
try{
i = getMapper().add(model);
}catch(Exception e){
System.out.println(e.getMessage());
}
return i;
}
public int adds(List<T> modelList) {
int i = 0;
try{
i = getMapper().adds(modelList);
}catch(Exception e){
System.out.println(e.getMessage());
}
return i;
}
public int update(T model) {
int i = 0;
try{
i = getMapper().update(model);
}catch(Exception e){
System.out.println(e.getMessage());
}
return i;
}
public int updates(List<T> modelList) {
int i = 0;
try{
i = getMapper().updates(modelList);
}catch(Exception e){
System.out.println(e.getMessage());
}
return i;
}
public T queryById(ID id) {
return getMapper().queryById(id);
}
public T queryModelByModel(T model){
return getMapper().queryModelByModel(model);
}
public List<T> queryList(T model) {
return getMapper().queryList(model);
}
public PageImpl<T> queryListForPageModel(T model, Pageable pb) {
// 查询所有数据count
int totalElements = getMapper().queryCount(model);
// 查询list分页数据
List<T> list = getMapper().queryListForPageModel(model, pb);
return new PageImpl(pb,totalElements,list);
}
public int queryCount(T model) {
return getMapper().queryCount(model);
}
}
3、BaseMapper
package dataSource;
import data.page.Pageable;
import org.apache.ibatis.annotations.Param;
import java.io.Serializable;
import java.util.List;
/**
* @author henry
* @version V1.0
* @Title: BaseMapper
* @Package com.txy.dataSource
* @Description: 公用mapper接口
*/
public interface BaseMapper<T,ID extends Serializable> {
int add(T model);
int adds(List<T> modelList);
int update(T model);
int updates(List<T> modelList);
T queryById(ID id);
T queryModelByModel(@Param("model") T model);
List<T> queryList(@Param("model") T model);
List<T> queryListForPageModel(@Param("model") T model, @Param("page") Pageable pb);
int queryCount(@Param("model") T model);
}
本代码段中使用分页类代码
1、Page
package data.page;
import java.util.List;
/**
* @author henry
* @version V1.0
* @Title: Page
* @Package data.page
* @Description: 页内容。
*/
public interface Page<T> {
/**
* 当前页码
*/
int getNumber();
/**
* 页大小
*/
int getSize();
/**
* 总页数
*/
int getTotalPages();
/**
* 总记录条数
*/
int getTotalElements();
/**
* 获取内容
*/
List<T> getContent();
/**
* 是否有内容
*/
boolean hasContent();
/**
* 下一页
*/
Pageable nextPageable();
/**
* 前一页
*/
Pageable previousPageable();
boolean isLastPageNumber();
}
2、Pageable
package data.page;
/**
* @author henry
* @version V1.0
* @Title: Pageable
* @Package data.page
*/
public class Pageable {
private int pageNumber;
private int pageSize;
private int index;
private int length;
public Pageable(int pageNumber, int pageSize) {
this.pageNumber = pageNumber;
this.pageSize = pageSize;
this.index = (pageNumber - 1) * pageSize;
this.length = pageSize;
}
public int getPageNumber() {
return pageNumber;
}
public int getPageSize() {
return pageSize;
}
public int getLength() {
return length;
}
public int getIndex() {
return index;
}
public Pageable next() {
return new Pageable(pageNumber + 1, pageSize);
}
public Pageable previousOrFirst() {
if (pageNumber == 1) {
return this;
}
return new Pageable(pageNumber - 1, pageSize);
}
public Pageable first() {
return new Pageable(1, pageSize);
}
}
3、PageImpl
package data.page;
import com.google.gson.annotations.Expose;
import java.util.List;
/**
* @author henry
* @version V1.0
* @Package data.page
* @Description: 分页实现。
*/
public class PageImpl<T> implements Page<T> {
@Expose
private int number;
@Expose
private int size;
@Expose
private int totalElements;
@Expose
private int totalPages;
@Expose
private List<T> content;
private transient Pageable pageable;
public PageImpl(Pageable pageable, int totalElements, List<T> content) {
number = pageable == null ? -1 : pageable.getPageNumber();
size = pageable == null ? -1 : pageable.getPageSize();
this.totalElements = totalElements;
this.totalPages = pageable == null ? 1 : (totalElements + size - 1) / size;
this.content = content;
this.pageable = pageable;
}
public int getNumber() {
return number;
}
public int getSize() {
return size;
}
public int getTotalPages() {
return totalPages;
}
public int getTotalElements() {
return totalElements;
}
public List<T> getContent() {
return content;
}
public boolean hasContent() {
return content != null && content.size() > 0;
}
public Pageable nextPageable() {
return pageable.next();
}
public Pageable previousPageable() {
return pageable.previousOrFirst();
}
public boolean isLastPageNumber() {
return pageable.getPageNumber()==totalElements/pageable.getPageSize()+1;
}
}