1. 所有的mapper 都是通过mybatis-generator-core-1.3.1.jar(之前的博文中有介绍) 生成了..
唯独没有提供分页方法..
2 百度很时间终打到满意答案.
废话不多说,直接上代码
1 mapper 基类
public interface BaseMapper<T, E, K> {
int countByExample(E e);
int deleteByExample(E e);
int deleteByPrimaryKey(K k);
int insert(T t);
int insertSelective(T t);
List<T> selectByExample(E e);
T selectByPrimaryKey(K k);
int updateByExampleSelective(@Param("record") T t, @Param("example") E e);
int updateByExample(@Param("record") T t, @Param("example") E e);
int updateByPrimaryKeySelective(K k);
int updateByPrimaryKey(T t);
List<T> queryForList(E e, int start, int end);
List<T> selectOnPage(@Param("example")E example, @Param("skipResults")int skipResults,
@Param("maxResults")int maxResults);
}
2 serivce 片断
public interface TrmDayBookMapper extends BaseMapper<TrmDayBook, TrmDayBookExample, TrmDayBookKey> {}
空实现一下
@Service
public class TrmDayBookBSImp extends BaseServiceImp<TrmDayBook, TrmDayBookExample, TrmDayBookKey> implements
ITrmDayBookBS<TrmDayBook, TrmDayBookExample, TrmDayBookKey> {
@Autowired
TrmDayBookMapper trmDayBookMapper;
public JFTResponse<TrmDayBookResVO> selectOnPage(TrmDayBookReqVO reqVO) {
try {
JFTResponse<TrmDayBookResVO> jftResponse = new JFTResponse<TrmDayBookResVO>("0");
reqVO.reckonPage();
TrmDayBookExample e = new TrmDayBookExample();
e.createCriteria().andCardNoEqualTo(reqVO.getCardNo()).andTrDateBetween(reqVO.getStartDate(),
reqVO.getEndDate());
e.setOrderByClause("SER_NO asc , ORG_ID desc");
List<TrmDayBook> list = trmDayBookMapper.selectOnPage(e,reqVO.getCurrPage(),reqVO.getPageSize());
Business bus = new Business();
bus.setResultset(bean2Vo(list));
...
3 ...mapper.xml
此sql generator 不会自动生成.只能每一个mapper.xml手工加上..累啊,
有大侠研究源码,加上这些东西,就完美了..顺便分享一下..
<select id="selectOnPage" resultMap="BaseResultMap">
SELECT * FROM (
SELECT page.*, ROWNUM AS rn FROM
(
select
<if test="example.distinct">
distinct
</if>
<include refid="Base_Column_List" />
from TRM_DAY_BOOK
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
<if test="example.orderByClause != null">
order by ${example.orderByClause}
</if>
)
page WHERE ROWNUM <= #{skipResults}
)
WHERE rn >= #{maxResults}
</select>
这里的代码和selectByExample 生成的类似..请注意多出的 examp.
4 mybatis 自动生成的sql
SELECT *
FROM (SELECT page.*, ROWNUM AS rn
FROM (select
*
from TRM_DAY_BOOK
WHERE (CARD_NO = ? and TR_DATE between ? and ?)
order by SER_NO asc, ORG_ID desc) page
WHERE ROWNUM <= ?)
WHERE rn >= ?
时间有限,写在不明了的请轻拍.
参考 以下博客,特此感谢
http://hi.baidu.com/cheung_ming/item/a18bb11c449c01cc38cb303b
http://www.iteye.com/topic/1122976
分享到:
相关推荐
mybatis分页插件,非入侵式,支持mysql,orcale,sqlserver,支持其他数据库拓展
spring+mybatis实现了物理分页的
目录 使用场景 动态标签 if标签 where标签 choose、when、otherwise 标签 ...if标签通常用那个胡where语句,update语句,insert语句中,通过判断参数值来决定是否使用某个查询条件,判断是否更新某一个字段或插入某个字段
Mybatis多参数查询与列表查询不同方式实现,效果看博文 http://blog.csdn.net/evankaka/article/details/45671473
MyBatis传入多个参数
实现的一个spring_mybatis的物理分页,支持数据库方言,采用拦截器方式,不用修改源码
非常好用的,就是你们所要的 Mybatis日志参数快速替换占位符 sql参数替换工具html
实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用...
mybatis之多对多
总结了Mybatis传递参数的几种方式,并对几种方式进行比较,另外还有一些参数的限制说明
Mybatis Log(自动填充sql参数打印到控制台)
<... PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!-- value="mssql|oracle|mysql|db2" --> </configuration>
SpringMvc Spring Mybatis Maven 注解方式
mybatis和spring整合方式-带注解,个人经验总结,适合新手学习,欢迎下载
mybatis注解
mybatis使用注解方式简单实现的Demo
如果是eclipse工具,直接生成的,则替换:plugins/org.mybatis.generator.core_1.3.2*****.jar,如果是其他方式则直接替换掉官方的mybatis-generator-core1.3.2.jar即可
解决mybatis头文件报错 下载好压缩包 解压将文件放到本地文件夹 例如 D盘的哪个文件夹 D:\mybatis\ ;然后打开eclipse ->Window->prefenrence->XML->XML Catalog->User Specifiled Entreis->Add->Location(此处是你...
MyBatis 中文注释源码,直接导入eclipse工程即可,源码中加了中文注释,可以学习研究底层,成就自我成长!
MyBatis 采用注解方式实现CRUD 参考博客:https://www.jianshu.com/p/74fbe5f1e610