fastmybatis
fastmybatis是一个mybatis开发框架,目的为简化mybatis的开发,让开发更高效。
- 零配置快速上手
- 无需编写xml文件即可完成CRUD操作
- 支持mysql,sqlserver,oracle,postgresql,sqlite
- 支持自定义sql,sql语句可以写在配置文件中,同样支持mybatis标签
- 支持与spring-boot集成
- 轻量级,无侵入性,可与传统mybatis用法共存
快速开始(springboot)
- 新建一个springboot项目
- pom.xml添加fastmybatis-spring-boot-starter
net.oschina.durcframework fastmybatis-spring-boot-starter 1.0.2
- 假设数据库有张
t_user
表,添加对应的实体类TUser.java
和MapperTUserMapper.java
- 在
application.propertis
中配置数据库连接 - 编写测试用例
@AutowiredTUserMapper mapper; // 根据主键查询@Testpublic 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 返回实体对象集合,没有返回空集合 */ListlistByColumn(@Param("column")String column,@Param("value")Object value);/** * 条件查询 * * @param query 查询条件 * @return 返回实体对象集合,没有返回空集合 */List list(@Param("query")Query query);/** * 查询指定字段结果 * @param columns 返回的字段 * @param query 查询条件 * @return 返回结果集 */List
Query查询对象
查询姓名为张三,并且年龄为22岁的用户:Query query = new Query().eq("username","张三").eq("age",22);Listusers = mapper.list(query);查询年龄为10,20,30的用户:Query query = new Query().in("age",Arrays.asList(10,20,30));List users = mapper.list(query);查询注册日期大于2017-11-11的用户:Date regDate = ...Query query = new Query().gt("reg_date",regDate);List users = mapper.list(query);查询性别为男的,年龄大于等于20岁的用户,按年龄降序:Query query = new Query().eq("gender",1).ge("age",20).orderby("age",Sort.DESC);List users = mapper.list(query);分页查询:Query query = new Query().eq("age",10).page(1,10); // 第一页,每页10条数据List users = mapper.list(query);查询总记录数:Query query = new Query().eq("age",10).page(1,10); // 第一页,每页10条数据long total = mapper.getCount(query); // 该条件下总记录数
- 完整的测试用例,
工程介绍
- :框架源代码
- :对应demo
- :代码生成工具,方便生成实体类和Mapper(可生成lombok风格实体类)
- 和:springboot对应的的starter
实战项目
: 一个文档管理项目,采用markdown方式写作。
意见交流
Q群328419269