Optional与Mybatis能否一起

1、mybatis的@Param()参数传递的问题,与JDK1.8的Optional的返回值问题。使用Optional与spring-data-jpa和mybatis有啥区别?

使用spring-data-jpa可以使用Optional<实体>,这样的返回不会出错。

但是Mybatis不行,返回值不能是 Optional<实体>,这样子会报错,字段也传入不到mapperxml中。

2、mybatis的传递参数为集合(set,list)的问题。

问题原因:

 出错原因:collection写set,list或者collection,所以出错。

3、mybatis使用自定义的分页插件,查询记录条数,查询显示内容

public class PageResult<T> {
	private int currentPage;

	private int pageSize;

	private int totalPages;

	private long totalCount;

	private List<T> content;

	public int getCurrentPage() {
		return currentPage;
	}

	public void setCurrentPage(int currentPage) {
		this.currentPage = currentPage;
	}

	public int getPageSize() {
		return pageSize;
	}

	public void setPageSize(int pageSize) {
		this.pageSize = pageSize;
	}

	public int getTotalPages() {
		return totalPages;
	}

	public void setTotalPages(int totalPages) {
		int page= (int) (this.totalCount/pageSize);
		if(this.totalCount%pageSize>0){
			page++;
		}
		this.totalPages = page;
	}

	public long getTotalCount() {
		return totalCount;
	}

	public void setTotalCount(long totalCount) {
		this.totalCount = totalCount;
	}

	public List<T> getLContent() {
		return content;
	}

	public void setContent(List<T> content) {
		this.content = content;
	}

 页面传递的参数: 

currentPage 当前页,pageSize每页的数据条数
pageResult.setCurrentPage(currentPage);
pageResult.setPageSize(pageSize);
计算有多少条记录count:select count(*) from 表
pageResult.setTotalCount(count);pageResult.setTotalPages(pageResult.getTotalPages());

查询页面内容:

select * from 表 where 条件
order by 字段 什么顺序(desc还是asc)limit #{currentPage},#{pageSize}
pageResult.setContent(页面内容)
返回pageResult即可。

猜你喜欢

转载自www.cnblogs.com/fengli9998/p/9025953.html
今日推荐