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框架的基础上进行扩展,实现数据的自动分片,将一个庞大的数据库逻辑上分为多个较小的物理库或表,从而提高查询效率和系统性能。 首先,我们需要理解Mybatis的基本概念。Mybatis是一个...
【标题】"spring-sharding-mybatis" 涉及到的是Spring Boot集成ShardingSphere(原ShardingJDBC)和MyBatis实现数据库分片的解决方案。这是一个在微服务架构中处理大数据量、高并发场景时,提升系统性能的重要技术。...
MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个...
9. **事务管理**:MyBatis_Plus 内置了事务管理,可以通过注解或配置方式开启和关闭事务,简化了事务处理代码。 在使用 MyBatis_Plus 时,通常需要先引入依赖,然后配置实体类、Mapper 和 Service,之后就可以直接...
4. **批量插入与更新**:MyBatis-Plus支持一次性插入或更新多条数据,提高了数据处理的效率。 5. **主键生成策略**:内置了多种主键生成策略,如ID_WORKER(分布式雪花算法)、SEQENCE(序列方式)等,可根据数据库...
1. **自动化CRUD操作**:通过简单的配置或注解,即可实现对数据库的增删改查操作,无需编写大量重复的SQL代码。例如,只需定义实体类和Mapper接口,MyBatis-Plus会自动生成对应的SQL语句。 2. **条件构造器**:提供...
7. **参数映射**:MyBatis支持多种方式传递参数,包括Map、POJO、基本类型以及使用@Param注解的方式,能够方便地处理复杂参数。 8. **事务管理**:MyBatis可以和Spring集成,利用Spring的事务管理,也可以手动管理...
PageHelper的使用非常简单,主要通过在Service或DAO层的方法上添加`@Page`注解,或者在Mapper接口的方法上添加`@Select`和`@Options`注解来实现分页查询。 1. 在Mapper接口中: ```java public interface ...
- **分页实现**:Mybatis支持两种主要的分页方式:内存分页(通过`RowBounds`对象实现)和物理分页。内存分页是在查询出全部数据后,再在Java层进行分页处理,适用于数据量较小的情况。物理分页则是在数据库层通过...
6. **灵活的配置**:用户可以通过XML或注解的方式进行配置,以满足不同场景的需求。 7. **排序功能**:可以方便地设置排序规则,实现数据的升序或降序排列。 在`free-Mybatis_PageHelper-master`这个压缩包中,包含...
1. **XML或注解配置**:定义SQL语句、参数映射和结果映射。 2. **Mapper接口**:在Java代码中通过接口方法调用SQL,降低了代码与配置的耦合。 3. **SqlSession**:执行SQL并获取结果,负责连接管理,遵循ACID原则。 ...
MyBatis作为一个半ORM(对象关系映射)框架,它的核心功能是将Java对象与数据库记录进行映射,通过XML或注解方式配置SQL语句,简化了数据访问层的开发。 MyBatis的优点主要包括: 1. 灵活性高,SQL语句编写自由,...
在MyBatis的映射文件中,需要通过特定的注解或标签来指定分片信息。Shardbatis会自动处理SQL语句,将其转化为符合分片规则的实际执行语句。同时,Shardbatis还提供了事务管理和数据一致性保障机制,保证了分布式环境...
在Mybatis中,#{}和${}是两种不同的参数处理方式。#{}是预编译处理,Mybatis会将SQL中的#{}替换为?号,然后调用PreparedStatement的set方法来赋值。这种方式可以有效地防止SQL注入,提高系统安全性。${}是字符串...
- 提供XML标签,强大的配置文件,灵活的SQL语句,能够通过简单的XML或注解进行配置和原始映射,将接口及Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录; - 避免了大量的JDBC代码和...