# mybatis-ext **Repository Path**: netlomin/mybatis-ext ## Basic Information - **Project Name**: mybatis-ext - **Description**: mybatis简化开发扩展 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-04-21 - **Last Updated**: 2022-10-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README > 技术讨论: [339763901](https://jq.qq.com/?_wv=1027&k=47urVsH) > 项目文档: [Mybatis-Ext文档](http://netlomin.host3v.net) mybatis-ext解决了Mybatis实体类生成,简单CRUD编写需要机械编码的问题,并能根据规则Mapper方法自动生成查询语句。简化了开发工作,提升了代码可读性. **一、扩展功能** - 支持IDE根据数据表自动生成的JPA实体类. - 通用CRUD mapper - 根据规则方法名自动生成查询语句 **二、配置使用** - 引入maven仓库 ``` lm lm default http://115.29.4.168:8082/nexus/content/repositories/thirdparty/ ``` - 引入maven依赖(注意:请删除项目中mybatis, mybatis-spring依赖, 防止版本冲突) ``` org.mybatis mybatis-ext 1.0.0 ``` - 配置spring ``` ``` - 配置mybatis ``` ``` **三、开发实例** - 根据领域模型创建实体表 ![实体表](https://static.oschina.net/uploads/img/201703/16225837_oeJ6.png "实体表") - 通过eclipse生成实体类 ![生成实体类](https://static.oschina.net/uploads/img/201703/16231343_KDt5.png "生成实体类") ``` @Entity @Table(name = "user") public class User implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @Column(name = "birth_day") private Date birthDay; private String name; private boolean show; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Date getBirthDay() { return birthDay; } public void setBirthDay(Date birthDay) { this.birthDay = birthDay; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isShow() { return show; } public void setShow(boolean show) { this.show = show; } } ``` - 创建Mapper ``` package org.mybatis.spring.ext.model.mapper; import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.mybatis.spring.ext.Page; import org.mybatis.spring.ext.Pageable; import org.mybatis.spring.ext.mapper.CrudMapper; import org.mybatis.spring.ext.mapper.MethodMapper; import org.mybatis.spring.ext.model.entity.User; @Mapper public interface UserMapper extends CrudMapper, MethodMapper { /** * 查询 id = #{id} and name = #{name}的用户 */ User getByIdANDName(@Param("id") Long id, @Param("name") String name); /** * 查询所有用户 */ List lstAll(); /** * 查询 name = #{name}的用户的用户数 */ int cntByName(String name); /** * 查询 name = #{name}的用户的用户数, name为空时, 查询总用户数 */ int cntBiName(@Param("name") String name); /** * 查询 name = #{name}的用户 */ List lstByName(String name); /** * 查询 name like #{name}% 的用户 */ List lstByNameStartsWith(Pageable pageable); /** * 分页查询:id between #{maxid} and #{minid} and name like %#{name}% order by id desc, birth_day asc limit #{offset}, #{pageSize} */ Page qryByIdBetweenANDNameContainsOBIdDESCBirthDayASC(Pageable pageable); /** * 删除id = #{id}的用户 */ int delById(Long id); } ```