package com.agentdriving.user.core.db; import com.baomidou.mybatisplus.mapper.BaseMapper; import com.agentdriving.user.core.util.SpringContextHolder; import java.util.HashMap; import java.util.List; /** *

* 便捷数据库操作类 *

*

* 本类的使用情景: *

* 1.单纯想创建现有的Mapper *

例如: * Db.getMapper(UserLoginMapper.class).selectById("14779707158513204");
*

* * @author fengshuonan * @date 2017年2月22日 下午8:07:17 */ @SuppressWarnings("all") public class Db { /** * 每个Db类,包装一个Mapper接口,这个clazz就是接口的类类型,例如UserMapper.class */ private Class clazz; /** * Mapper的父类接口 */ private BaseMapper baseMapper; /** * 私有构造方法,不允许自己创建 */ private Db(Class clazz) { this.clazz = clazz; this.baseMapper = (BaseMapper) SpringContextHolder.getBean(clazz); } /** *

* 创建包含指定mapper的Db工具类,使用本类的第一种用法 * * @param clazz mapper的类类型 * @date 2017年2月22日 下午10:09:31 */ public static Db create(Class clazz) { return new Db(clazz); } /** *

* 获取一个mapper的快捷方法 * * @param clazz mapper类的类对象 * @date 2017年2月22日 下午10:31:35 */ public BaseMapper getMapper() { return this.baseMapper; } /** *

* 获取一个mapper的快捷方法 * * @param clazz mapper类的类对象 * @date 2017年2月22日 下午10:31:35 */ public static T getMapper(Class clazz) { return SpringContextHolder.getBean(clazz); } /** * 通过一个条件获取数据库中的一条记录(会返回null) * * @date 2017年2月22日 下午10:45:51 */ public E selectOneByCon(String condition, Object value) { List results = selectOneByConList(condition, value); if (results != null && results.size() > 0) { return (E) results.get(0); } else { return null; } } /** * 通过一个条件获取一堆记录(会返回null) * * @date 2017年2月22日 下午10:45:51 */ public List selectOneByConList(String condition, Object value) { HashMap conditionMap = new HashMap(); conditionMap.put(condition, value); List results = (List) this.baseMapper.selectByMap(conditionMap); if (results == null || results.size() == 0) { return null; } else { return results; } } }