| package com.supersavedriving.driver.core.db; | 
|   | 
| import com.baomidou.mybatisplus.mapper.BaseMapper; | 
| import com.supersavedriving.driver.core.util.SpringContextHolder; | 
|   | 
| import java.util.HashMap; | 
| import java.util.List; | 
|   | 
| /** | 
|  * <p> | 
|  * 便捷数据库操作类 | 
|  * <p> | 
|  * <p> | 
|  * 本类的使用情景: | 
|  * <p> | 
|  * 1.单纯想创建现有的Mapper | 
|  * <p>例如: | 
|  * Db.getMapper(UserLoginMapper.class).selectById("14779707158513204");<br> | 
|  * <p> | 
|  * | 
|  * @author fengshuonan | 
|  * @date 2017年2月22日 下午8:07:17 | 
|  */ | 
| @SuppressWarnings("all") | 
| public class Db<T> { | 
|   | 
|     /** | 
|      * 每个Db类,包装一个Mapper接口,这个clazz就是接口的类类型,例如UserMapper.class | 
|      */ | 
|     private Class<T> clazz; | 
|   | 
|     /** | 
|      * Mapper的父类接口 | 
|      */ | 
|     private BaseMapper<?> baseMapper; | 
|   | 
|     /** | 
|      * 私有构造方法,不允许自己创建 | 
|      */ | 
|     private Db(Class clazz) { | 
|         this.clazz = clazz; | 
|         this.baseMapper = (BaseMapper<?>) SpringContextHolder.getBean(clazz); | 
|     } | 
|   | 
|     /** | 
|      * <p> | 
|      * 创建包含指定mapper的Db工具类,使用本类的第一种用法 | 
|      * | 
|      * @param clazz mapper的类类型 | 
|      * @date 2017年2月22日 下午10:09:31 | 
|      */ | 
|     public static <T> Db<T> create(Class<T> clazz) { | 
|         return new Db<T>(clazz); | 
|     } | 
|   | 
|     /** | 
|      * <p> | 
|      * 获取一个mapper的快捷方法 | 
|      * | 
|      * @param clazz mapper类的类对象 | 
|      * @date 2017年2月22日 下午10:31:35 | 
|      */ | 
|     public BaseMapper<?> getMapper() { | 
|         return this.baseMapper; | 
|     } | 
|   | 
|     /** | 
|      * <p> | 
|      * 获取一个mapper的快捷方法 | 
|      * | 
|      * @param clazz mapper类的类对象 | 
|      * @date 2017年2月22日 下午10:31:35 | 
|      */ | 
|     public static <T> T getMapper(Class<T> clazz) { | 
|         return SpringContextHolder.getBean(clazz); | 
|     } | 
|   | 
|     /** | 
|      * 通过一个条件获取数据库中的一条记录(会返回null) | 
|      * | 
|      * @date 2017年2月22日 下午10:45:51 | 
|      */ | 
|     public <E> 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 <E> List<E> selectOneByConList(String condition, Object value) { | 
|         HashMap<String, Object> conditionMap = new HashMap<String, Object>(); | 
|         conditionMap.put(condition, value); | 
|   | 
|         List<E> results = (List<E>) this.baseMapper.selectByMap(conditionMap); | 
|         if (results == null || results.size() == 0) { | 
|             return null; | 
|         } else { | 
|             return results; | 
|         } | 
|     } | 
| } |