内容简介:fastmybatis 1.11.1 发布,本次更新内容如下: mapper新增如下方法: E getBySpecifiedColumns(List<String> columns, Query query) 查询单条数据并返回指定字段 <T> T getBySpecifiedColumns(List<String> colum...
fastmybatis 1.11.1 发布,本次更新内容如下:
mapper新增如下方法:
E getBySpecifiedColumns(List<String> columns, Query query)
查询单条数据并返回指定字段<T> T getBySpecifiedColumns(List<String> columns, Query query, Class<T> clazz)
查询单条数据并返回指定字段并转换到指定类中List<E> listByIds(Collection<I> ids)
根据多个主键值查询T getColumnValue(String column, Query query, Class<T> clazz)
查询某个字段值List<T> listColumnValues(String column, Query query, Class<T> clazz)
查询指定列,返指定列集合int saveOrUpdate(E entity)
保存或更新(所有字段)int saveOrUpdateIgnoreNull(E entity)
保存或更新(不为null的字段)int deleteByIds(Collection<I> ids)
根据多个主键id删除,在有逻辑删除字段的情况下,做UPDATE操作int deleteByColumn(String column, Object value)
根据指定字段值删除,在有逻辑删除字段的情况下,做UPDATE操作int saveUnique(Collection<E> entitys)
批量保存并去重-
int saveUnique(Collection<E> entitys, Comparator<E> comparator)
批量保存并去重,指定比较器 -
新增BaseService
通用service -
新增IService
通用接口
查询单条数据并返回指定字段
有时候只想查询某一行某几列数据,
Query query = new Query().eq("id", 6);
TUser tUser = mapper.getBySpecifiedColumns(Arrays.asList("id", "username"), query);
对应SQL:
SELECT id , username FROM `t_user` t WHERE id = 6 AND LIMIT 0,1
查询出来实体类对应的id,usernam字段是有数据的,其它字段为null,也可以转换成其它类:
UserVO userVo = mapper.getBySpecifiedColumns(Arrays.asList("id", "username"), query, UserVO.class);
查询某个字段值
只查询某一行某一列数据
Query query = new Query().eq("id", 6); String username = mapper.getColumnValue("username", query, String.class);
对应SQL:
SELECT username FROM `t_user` t WHERE id = 6 LIMIT 0,1
查询某一列多行数据,比如查询所有的username
// 年龄大于10岁的所有用户名 Query query = new Query().gt("age", 10); List<String> usernameList = mapper.listColumnValues("username", query, Integer.class);
对应SQL:
SELECT username FROM `t_user` t WHERE age > 10;
通用Service类
本次新增了一个通用Service类,只需简单继承便具备所有的增删改查功能,使用方法如下:
@Service public class UserService extends BaseService<TUser/*实体类*/, Integer/*主键类型*/, TUserMapper/*Mapper*/> { }
如果Service已经继承了其它类,可以通过实现接口解决
public class UserService extends OtherService implements IService<TUser, Integer> { @Autowired private TUserMapper userMapper; @Override public CrudMapper<TUser, Integer> getMapper() { return userMapper; } }
controller增删改查例子:
/**
* 增删改查例子
*/
@RestController
public class CrudController {
@Autowired
private UserService userService;
/**
* 分页查询
* http://localhost:8080/user/page?id=10
* http://localhost:8080/user/page?pageIndex=1&pageSize=5
*
* @param param
* @return
*/
@GetMapping("/user/page")
public Result<PageInfo<TUser>> page(UserParam param) {
Query query = param.toQuery();
PageInfo<TUser> pageInfo = userService.page(query);
return Result.ok(pageInfo);
}
/**
* 新增记录,这里为了方便演示用了GET方法,实际上应该使用POST
* http://localhost:8080/user/save?username=jim
*
* @param user
* @return
*/
@GetMapping("/user/save")
public Result<Integer> save(TUser user) {
userService.saveIgnoreNull(user);
// 返回添加后的主键值
return Result.ok(user.getId());
}
/**
* 修改记录,这里为了方便演示用了GET方法,实际上应该使用POST
* http://localhost:8080/user/update?id=10&username=jim
*
* @param user 表单数据
* @return
*/
@GetMapping("/user/update")
public Result<?> update(TUser user) {
userService.updateIgnoreNull(user);
return Result.ok();
}
/**
* 删除记录,这里为了方便演示用了GET方法,实际上应该使用DELETE
* http://localhost:8080/user/delete?id=10
*
* @param id 主键id
* @return
*/
@GetMapping("/user/delete")
public Result<?> delete(Integer id) {
userService.deleteById(id);
return Result.ok();
}
}
完整的Mapper方法 doc
方法 | 说明 |
---|---|
E getByColumn(String column, Object value) |
根据字段查询一条记录 |
E getById(I id) |
根据主键查询 |
E getByQuery(Query query) |
根据条件查找单条记录 |
E getBySpecifiedColumns(List<String> columns, Query query) |
查询单条数据并返回指定字段 |
<T> T getBySpecifiedColumns(List<String> columns, Query query, Class<T> clazz) |
查询单条数据返回指定字段并转换到指定类中 |
<T> T getColumnValue(String column, Query query, Class<T> clazz) |
查询某一行某个字段值 |
long getCount(Query query) |
查询总记录数 |
List<E> list(Query query) |
查询结果集 |
List<E> listByArray(String column, Object[] values) |
根据多个字段值查询结果集 |
List<E> listByCollection(String column, Collection<?> values) |
根据字段多个值查询结果集 |
List<E> listByColumn(String column, Object value) |
根据字段查询结果集 |
List<E> listByIds(Collection<I> ids) |
根据多个主键查询 |
List<E> listBySpecifiedColumns(List<String> columns, Query query) |
查询返回指定的列,返回实体类集合 |
<T> List<T> listBySpecifiedColumns(List<String> columns, Query query, Class<T> clazz) |
查询返回指定的列,返指定类集合 |
<T> List<T> listColumnValues(String column, Query query, Class<T> clazz) |
查询指定列,返指定列集合 |
PageInfo<E> page(Query query) |
分页查询 |
<R> PageInfo<R> page(Query query, Function<E, R> converter) |
查询结果集,并转换结果集中的记录,转换处理每一行 |
<R> PageInfo<R> page(Query query, Supplier<R> target, Consumer<R> format) |
查询结果集,并转换结果集中的记录,并对记录进行额外处理 |
<T> PageInfo<T> page(Query query, Supplier<T> target) |
查询结果集,并转换结果集中的记录 |
<R> PageInfo<R> pageAndConvert(Query query, Function<List<E>, List<R>> converter) |
查询结果集,并转换结果集中的记录,转换处理list |
<T> PageInfo<T> pageBySpecifiedColumns(List<String> columns, Query query, Class<T> clazz) |
查询返回指定的列,返回分页数据 |
PageEasyui<E> pageEasyui(Query query) |
查询返回easyui结果集 |
<T> PageEasyui<T> pageEasyui(Query query, Class<T> clazz) |
查询返回easyui结果集,并转换结果集中的记录 |
E forceById(I id) |
根据主键查询强制查询,忽略逻辑删除字段 |
int save(E entity) |
保存,保存所有字段 |
int saveBatch(Collection<E> entitys) |
批量保存 |
int saveIgnoreNull(E entity) |
保存,忽略null字段 |
int saveMultiSet(Collection<E> entitys) |
批量保存,兼容更多的数据库版本,忽略重复行,此方式采用union的方式批量insert |
int saveOrUpdate(E entity) |
保存或修改,当数据库存在记录执行UPDATE,否则执行INSERT |
int saveOrUpdateIgnoreNull(E entity) |
保存或修改,忽略null字段,当数据库存在记录执行UPDATE,否则执行INSERT |
int saveUnique(Collection<E> entitys) |
批量保存,去除重复行,通过对象是否相对判断重复数据,实体类需要实现equals方法 |
int saveUnique(Collection<E> entitys, Comparator<E> comparator) |
批量保存,去除重复行,指定比较器判断 |
int update(E entity) |
更新,更新所有字段 |
int updateByQuery(E entity, Query query) |
根据条件更新 |
int updateIgnoreNull(E entity) |
更新,忽略null字段 |
int updateByMap(Map<String, Object> map, Query query) |
根据条件更新,map中的数据转化成update语句set部分,key为数据库字段名 |
int delete(E entity) |
删除,在有逻辑删除字段的情况下,做UPDATE操作 |
int deleteByColumn(String column, Object value) |
根据指定字段值删除,在有逻辑删除字段的情况下,做UPDATE操作 |
int deleteById(I id) |
根据id删除,在有逻辑删除字段的情况下,做UPDATE操作 |
int deleteByIds(Collection<I> ids) |
根据多个主键id删除,在有逻辑删除字段的情况下,做UPDATE操作 |
int deleteByQuery(Query query) |
根据条件删除,在有逻辑删除字段的情况下,做UPDATE操作 |
int forceDelete(E entity) |
强制删除(底层根据id删除),忽略逻辑删除字段,执行DELETE语句 |
int forceDeleteById(I id) |
根据id强制删除,忽略逻辑删除字段,执行DELETE语句 |
int forceDeleteByQuery(Query query) |
根据条件强制删除,忽略逻辑删除字段,执行DELETE语句 |
关于fastmybatis
fastmybatis是一个mybatis开发框架,其宗旨为:简单、快速、有效。
- 零配置快速上手
- 无需编写xml文件即可完成CRUD操作
- 支持 mysql 、sqlserver、oracle、postgresql、sqlite
- 支持自定义sql,对于基本的增删改查不需要写SQL,对于其它特殊SQL(如统计SQL)可写在xml中
- 支持与spring-boot集成,依赖starter即可
- 支持插件编写
- 轻量级,无侵入性,是官方mybatis的一种扩展
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 地开发环境搭建利器--vagrant
- 前端开发利器:Wep Replay
- 布隆过滤器你值得拥有的开发利器
- GitHub 推出开发者赚钱新利器,100% 全给开发者!
- 微服务解决方案 Go微服务开发利器
- 前端开发利器 WebStorm 发布 2017.3.3 正式版本
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java常用算法手册
2012-5 / 59.00元
《Java常用算法手册》分三篇,共13章,分别介绍了算法基础、算法应用和算法面试题。首先介绍了算法概述,然后重点分析了数据结构和基本算法思想;接着,详细讲解了算法在排序、查找、数学计算、数论、历史趣题、游戏、密码学等领域中的应用;最后,列举了算法的一些常见面试题。书中知识点覆盖全面,结构安排紧凑,讲解详细,实例丰富。全书对每一个知识点都给出了相应的算法及应用实例,虽然这些例子都是以Java语言来编......一起来看看 《Java常用算法手册》 这本书的介绍吧!
CSS 压缩/解压工具
在线压缩/解压 CSS 代码
html转js在线工具
html转js在线工具