mybatis-jpa插件使用教程

写到最前面

                  

            随着越来越多的项目使用myabtis,国内也有几个mybatis 的插件,比如 myabtis plus,今天给大家介绍的myabtis jpa是一个对myabtis 无污染,轻量级的插件。

              本插件暂时只支持mysql             

             1      mybatis jpa插件可以做什么?

                     A  遵循JPA规范,可以不用写sql实现简单的CRUD方法。 

                     B  支持分页,排序,批量insert

                     C 支持分表

                     D 可以配合mapper.xml一起使用

              2     Quik start (PS:相关的下载地址都在最下面)

                     A  首先引入myabtis的jar (或者使用eclipse linksource引入mybatis jpa的代码)

                     B  使用代码生成器根据数据库表生成do (你可能要重写下代码生成器的部分代码,默认是我自己框架的格式)

                     C  让你的dao接口继承MybatisBaseMapper

                          

              

         3 MybatisBaseMapper 提供的能力(无需写代码即可实现的,请注意,batchupdate此方法未实现)

             

package com.mybatis.jpa.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.mybatis.jpa.annotation.StatementDefinition;

/**
 * 规范通用Mapper方法签名</br>
 *
 * 子类Mapper通过继承此接口获取方法签名,并使用{@MapperDefinition}注解标记Mapper.</br>
 * 使用{@StatementDefinition}注解标记的方法,将被解析并注入到Mybatis Statement</br>
 *
 * about deference with insert(){@link #insert(Object)} and insertSelective()
 * {@link #insertSelective(Object)}</br>
 * 方法的区别在于null值的处理,假设column_1在数据库设置了默认值,而参数中的field_1为null值,则insert
 * 在数据库写入null,而insertSelective写入数据库默认值.
 *
 * @attation 并非要继承此接口才能使用mybatis-jpa,事实上它只是定义了公共的Mapper方法签名,便于代码风格的统一
 *
 *
 * @author svili
 * @data 2017年5月8日
 *
 * @param <T>持久化Entity类型
 */
public interface MybatisBaseMapper<T> {

	/**
	 * 做判空处理的insert
	 * @param entity do
	 * @return 受影响的行数
	 */
	@StatementDefinition
	int insertSelective(T entity);

	/**
	 * 插入
	 * @param entity
	 * @return int 受影响的行数
	 * @since  1.0.0
	*/
	@StatementDefinition
	int insert(T entity);

	/**
	 * 批量插入
	 * @param list 需要插入的集合
	 * @return 受影响的行数
	 * @since  1.0.0
	*/
	@StatementDefinition
	int batchInsert(@Param("list")List<T> list);

	/**
     * 批量插入.
     *
     * @param list 需要插入的集合
     * @param flag 分表标志
     * @return 受影响的行数
     * @since 1.0.0
     */
    @StatementDefinition
    int batchInsertCatTable(@Param("list")List<T> list,@Param("flag")String flag);

	/**
	 * 根据id删除数据
	 * @param primaryValue id
	 * @return 受影响行数
	 * @since  1.0.0
	*/
	@StatementDefinition
	int deleteById(Object primaryValue);

	/**
     * 根据id删除数据
     * @param primaryValue id
     * @param flag 分表标志
     * @return 受影响行数
     * @since  1.0.0
    */
    @StatementDefinition
    int deleteByIdCatTable(@Param("param")Object primaryValue,@Param("flag")String flag);

	/**
	 * 根据id更新
	 * @param entity 待更新数据
	 * @return   受影响行数
	 * @since  1.0.0
	*/
	@StatementDefinition
	int updateById(T entity);

	/**
	 * 根据id跟新 -- 判空
	 * @param 待更新数据
     * @return   受影响行数
	 * @since  1.0.0
	*/
	@StatementDefinition
	int updateSelectiveById(T entity);

	//@StatementDefinition
	int batchUpdate(List<T> list);

	/**
	 * 根据id、查询
	 * @param primaryValue id
	 * @return   model
	 * @since  1.0.0
	*/
	@StatementDefinition
	T selectById(Object primaryValue);

	/**
     * 根据id、查询
     * @param primaryValue id
     * @return   model
     * @since  1.0.0
    */
    @StatementDefinition
    T selectByIdCatTable(@Param("param")Object primaryValue,@Param("flag")String flag);


	/**
	 * 根据分页参数返回结果
	 * 如果不需要分页 pageStart或者pageSize传0即可
	 * @param entity 用来做过滤的参数
	 * @param pageStart 开始number
	 * @param pageSize 一页多少行数据
	 * @return 符合条件的数据
	 */
	@StatementDefinition
	List<T> selectPage(@Param("entity")T entity,@Param("pageStart")long pageStart,@Param("pageSize")long pageSize);

	/**
	 * 根据参数查询总数
	 * @param entity 用来做过滤的参数
	 * @return 符合条件的数据条数
	 */
	@StatementDefinition
	long selectCount(T entity);

	/**
	 * select(这里用一句话描述这个方法的作用)
	 * (这里描述这个方法适用条件 – 可选)
	 * @return 查询所有
	 * @since  1.0.0
	*/
	@StatementDefinition
	List<T> select();
}

             4 代码生成器使用教程

                 

           最后官方的myabtis jpa插件地址:https://github.com/LittleNewbie/mybatis-jpa  (注意,可能有一些 BUG,推荐使用我定制过的) 

              我定制过的下载地址:http://download.csdn.net/download/shuaizai88/10218432

              代码生成器地址:http://download.csdn.net/download/shuaizai88/10218434

              作者QQ 921888199


                    

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值