Commit 33c76733 by stylefeng

集成db工具类

parent e83cfd26
...@@ -15,12 +15,26 @@ ...@@ -15,12 +15,26 @@
<url>http://maven.apache.org</url> <url>http://maven.apache.org</url>
<dependencies> <dependencies>
<!--必选依赖--> <!--工具类-->
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId> <artifactId>commons-lang3</artifactId>
</dependency> </dependency>
<!--数据库操作-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatisplus-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--web--> <!--web-->
<dependency> <dependency>
<groupId>javax.servlet</groupId> <groupId>javax.servlet</groupId>
...@@ -47,13 +61,6 @@ ...@@ -47,13 +61,6 @@
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<scope>provided</scope>
</dependency>
<!--缓存--> <!--缓存-->
<dependency> <dependency>
<groupId>org.ehcache</groupId> <groupId>org.ehcache</groupId>
......
package com.stylefeng.guns.core.db;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.stylefeng.guns.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;
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment