设为首页 收藏本站
查看: 1238|回复: 0

[经验分享] 通过注解多参数方式解决mybatis物理分面

[复制链接]

尚未签到

发表于 2016-11-27 12:49:25 | 显示全部楼层 |阅读模式
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 &lt;= #{skipResults}
)
WHERE rn &gt;= #{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.iyunv.com/topic/1122976

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-306240-1-1.html 上篇帖子: MyBatis,动态传入表名,字段名的解决办法 下篇帖子: SprignMVC+myBatis整合(三)——添加信息时Null处理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表