MyBatis 简化开发框架 fastmybatis

MIT
Java
跨平台
2018-06-20
tanghc

fastmybatis是一个mybatis开发框架,目的为简化mybatis的开发,让开发更高效。

  • 零配置快速上手

  • 无需编写xml文件即可完成CRUD操作

  • 支持mysql,sqlserver,oracle,postgresql,sqlite

  • 支持自定义sql,sql语句可以写在配置文件中,同样支持mybatis标签

  • 支持与spring-boot集成

  • 轻量级,无侵入性,可与传统mybatis用法共存

fastmybatis与MyBatis generator对比

快速开始(springboot)

  • 新建一个springboot项目

  • pom.xml添加fastmybatis-spring-boot-starter

<dependency>
    <groupId>net.oschina.durcframework</groupId>
    <artifactId>fastmybatis-spring-boot-starter</artifactId>
    <version>1.0.2</version>
</dependency>
  • 假设数据库有张t_user表,添加对应的实体类TUser.java和MapperTUserMapper.java

  • application.propertis中配置数据库连接

  • 编写测试用例

@Autowired
TUserMapper mapper;
    
// 根据主键查询
@Test
public void testGetById() {
    TUser user = mapper.getById(3);
    System.out.println(user);
}

Mapper方法列表

/**
 * 根据对象查询,可以传主键值,也可以传整个对象
 * 
 * @param id
 * @return 返回实体对象,没有返回null
 */
Entity getById(ID id);

/**
 * 根据条件查找单条记录
 * @param query 查询条件
 * @return 返回实体对象,没有返回null
 */
Entity getByQuery(@Param("query")Query query);

/**
 * 根据字段查询一条记录
 * @param column 数据库字段名
 * @param value 字段值
 * @return 返回实体对象,没有返回null
 */
Entity getByColumn(@Param("column")String column,@Param("value")Object value);

/**
 * 查询总记录数
 * 
 * @param query 查询条件
 * @return 返回总记录数
 */
long getCount(@Param("query")Query query);  

/**
 * 根据字段查询集合
 * @param column 数据库字段名
 * @param value 字段值
 * @return 返回实体对象集合,没有返回空集合
 */
List<Entity> listByColumn(@Param("column")String column,@Param("value")Object value);

/**
 * 条件查询
 * 
 * @param query 查询条件
 * @return 返回实体对象集合,没有返回空集合
 */
List<Entity> list(@Param("query")Query query);

/**
 * 查询指定字段结果
 * @param columns 返回的字段
 * @param query 查询条件
 * @return 返回结果集
 */
List<Map<String, Object>> listMap(@Param("columns")List<String> columns, @Param("query")Query query);

/**
 * 新增,新增所有字段
 * 
 * @param entity
 * @return 受影响行数
 */
int save(Entity entity);

/**
 * 新增(忽略null数据)
 * @param entity
 * @return 受影响行数
 */
int saveIgnoreNull(Entity entity);

/**
 * 批量添加,只支持mysql,sqlserver2008及以上数据库.<br>
 * <strong>若要兼容其它版本数据库,请使用saveMulti()方法</strong>
 * @param entitys
 * @return
 */
int saveBatch(@Param("entitys")List<Entity> entitys);

/**
 * 批量添加,兼容更多的数据库版本.<br>
 * 此方式采用union all的方式批量insert,如果是mysql或sqlserver2008及以上推荐saveBatch()方法.
 * @param entitys
 * @return
 */
int saveMulti(@Param("entitys")List<Entity> entitys);

/**
 * 修改,修改所有字段
 * 
 * @param entity
 * @return 受影响行数
 */
int update(Entity entity);

/**
 * 根据主键更新不为null的字段
 * 
 * @param entity
 * @return 受影响行数
 */
int updateIgnoreNull(Entity entity);

/**
 * 根据条件批量更新
 * 
 * @param entity 待更新的数据,可以是实体类,也可以是Map{@literal<String,Object>}
 * @param query 更新条件
 * @return 受影响行数
 */
int updateByQuery(@Param("entity") Object entity, @Param("query") Query query);

/**
 * 删除
 * 
 * @param entity
 * @return 受影响行数
 */
int delete(Entity entity);

/**
 * 根据id删除
 * 
 * @param id 主键id
 * @return 受影响行数
 */
int deleteById(ID id);

/**
 * 根据条件删除
 * 
 * @param query
 * @return 受影响行数
 */
int deleteByQuery(@Param("query")Query query);

Query查询对象

查询姓名为张三,并且年龄为22岁的用户:
Query query = new Query().eq("username","张三").eq("age",22);
List<User> users = mapper.list(query);

查询年龄为10,20,30的用户:
Query query = new Query().in("age",Arrays.asList(10,20,30));
List<User> users = mapper.list(query);

查询注册日期大于2017-11-11的用户:
Date regDate = ...
Query query = new Query().gt("reg_date",regDate);
List<User> users = mapper.list(query);

查询性别为男的,年龄大于等于20岁的用户,按年龄降序:
Query query = new Query().eq("gender",1).ge("age",20).orderby("age",Sort.DESC);
List<User> users = mapper.list(query);

分页查询:
Query query = new Query().eq("age",10).page(1,10); // 第一页,每页10条数据
List<User> users = mapper.list(query);

查询总记录数:
Query query = new Query().eq("age",10).page(1,10); // 第一页,每页10条数据
long total = mapper.getCount(query); // 该条件下总记录数
加载中

评论(0)

暂无评论

fastmybatis 1.0.11 发布,增强团队协作

fastmybatis 1.0.11 发布,此次更新内容有: 增强Mapper.xml,不同Mapper文件可指定同一个namespace,最终会合并 doc 优化属性拷贝 本次更新重点是Mapper.xml增强,多文件可指定同一个names...

07/28 12:31

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

一个mybatis开发框架,比JPA好用比MyBatis generator好用

# fastmybatis fastmybatis是一个mybatis开发框架,目的为简化mybatis的开发,让开发更高效。 - 零配置快速上手 - 无需编写xml文件即可完成CRUD操作 - 支持mysql,sqlserver,oracle,postg...

06/20 15:56
31
0
崛起于Springboot2.X之集成FastMybatis操作mysql(8)

序言:fastMybatis是一个更加快捷的框架,搭建更加快捷以及使用简单方便,简化Mybatis的开发,码云地址,fastMybatis码云地址。 1、特点 1.1 支持mysql,sqlserver,oracle,postgresql,sqli...

06/26 14:10
162
0
一个文档管理项目,采用markdown方式写作

# easydoc 一个文档管理项目,采用markdown方式写作。此项目也是作为[easyopen](https://gitee.com/durcframework/easyopen "easyopen")项目的实践项目。 [项目地址](https://gitee.com/dur...

06/20 16:06
147
1
三分钟搞定springboot+mybatis分页

浏览器打开 http://start.spring.io/ 创建一个空的springboot项目,添加web,mysql依赖 导入项目到IDE pom.xml中添加依赖 <dependency> <groupId>net.oschina.durcframework</groupId> <art...

06/27 20:32
620
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部