(springBoot整合MyBatisPlus实现基本的增删改查功能&)
springBoot整合MyBatisPlus实现基本的增删改查功能&
项目结构
Pom.xml 资源文件
4.0.0
com.szewec
demo-service
0.0.1-SNAPSHOT
UTF-8
demo-service
示例服务
org.springframework.boot
spring-boot-starter-parent
2.0.2.RELEASE
com.baomidou
mybatis-plus-boot-starter
2.2.0
io.springfox
springfox-swagger2
2.6.1
commons-lang
commons-lang
2.6
io.springfox
springfox-swagger-ui
2.6.1
com.alibaba
druid
1.1.22
org.springframework
spring-tx
4.3.2.RELEASE
org.postgresql
postgresql
runtime
org.springframework.boot
spring-boot-starter-web
compile
org.springframework.boot
spring-boot-maven-plugin
com.szewec.ServiceApplication
-Dfile.encoding=UTF-8
true
ZIP
repackage
org.apache.maven.plugins
maven-compiler-plugin
1.8
1.8
application.yml 全局配置文件设置
##数据源地址
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
url: jdbc:postgresql://127.0.0.1:5432/postgres
username: postgres
password: 123456
driverClassName: org.postgresql.Driver
initialSize: 1
maxActive: 20
maxWait: 60000
application:
name: demo-service
##启用Mybatis
orm:
mybatis:
only: true
#mybatis
mybatis-plus:
mapper-locations: classpath:/mapper/*.xml
#实体扫描,多个package用逗号或者分号分隔
typeAliasesPackage: com.huawei.model
global-config:
#主键类型 0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
id-type: 2
#字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
field-strategy: 2
#驼峰下划线转换
db-column-underline: true
#刷新mapper 调试神器
refresh-mapper: true
#数据库大写下划线转换
#capital-mode: true
#序列接口实现类配置
#key-generator: com.baomidou.springboot.xxx
#逻辑删除配置
#logic-delete-value: 0
#logic-not-delete-value: 1
#自定义填充策略接口实现
#meta-object-handler: com.baomidou.springboot.xxx
#自定义SQL注入器
#sql-injector: com.baomidou.springboot.xxx
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
## 服务器端口,自行设置
server:
port: 1111
## 服务注册中心地址
eureka:
instance:
status-page-url-path: /swagger-ui.html
## 日志
logging:
config: classpath:logback.xml
level:
root: debug
platform:
url: http://10.0.7.128:8080
##swagger配置
swagger:
##是否开启swagger文档
enable: true
##网关
host: 10.0.7.128:8080
##接口包(多个用,隔开)
basePackage: com.huawei.controller
##文档标题
title: 示例
##文档描述
description: 变更管理的功能
##文档版本
version: 1.0
Logback.xml日志配置文件
%d %p (%file:%line\)- %m%n
UTF8
basedata_log/basedata.log
basedata_log/basedata.log.%d.%i
64 MB
%d %p (%file:%line\)- %m%n
UTF-8
Controller层
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.szewec.model.vo.PageBean;
import com.szewec.model.vo.Puser;
import com.szewec.service.PuserService;
import io.swagger.annotations.Api;
import org.apache.commons.lang.StringUtils;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
@RestController
@EnableSwagger2
@Api("swaggerDemoController相关的api")
@RequestMapping("/api")
public class PuserController {
@Resource
private PuserService puserService;
@RequestMapping("/users/test")
public PageBean getParamsTest(HttpServletRequest request, HttpServletResponse response) throws IOException {
String field = request.getParameter("field");
String keyword = request.getParameter("keyword");
ObjectMapper mapper = new ObjectMapper();
String s = "{\"total\":3,\"current\":1,\"list\":[{\"id\":1,\"name\":\"张三\",\"age\":23,\"sex\":\"女\",\"address\":\"成都\"},{\"id\":2,\"name\":\"李四\",\"age\":24,\"sex\":\"男\",\"address\":\"杭州\"},{\"id\":3,\"name\":\"王五\",\"age\":25,\"sex\":\"男\",\"address\":\"上海\"}]}";
if(StringUtils.isNotBlank(field)){
s = "{\"total\":3,\"current\":1,\"list\":[{\"id\":1,\"name\":\"张三111111\",\"age\":23,\"sex\":\"女\",\"address\":\"成都\"},{\"id\":2,\"name\":\"李四\",\"age\":24,\"sex\":\"男\",\"address\":\"杭州\"},{\"id\":3,\"name\":\"王五\",\"age\":25,\"sex\":\"男\",\"address\":\"上海\"}]}";
}
return mapper.readValue(s,new TypeReference(){});
}
@RequestMapping("/users/query")
public PageBean usersFuzzyQuery(HttpServletRequest request, HttpServletResponse response) throws IOException {
Puser puser = new Puser();
String field = request.getParameter("field");
String keyword = request.getParameter("keyword");
String current = request.getParameter("current");
if(null==current){
current="0";
}
if(StringUtils.isNotBlank(field)&&StringUtils.isNotBlank(keyword)){
if("name".equals(field)){
puser.setName(keyword);
}
if("address".equals(field)){
puser.setAddress(keyword);
}
}
List usersList = puserService.usersFuzzyQuery(puser,Integer.valueOf(current));
PageBean pageBean = new PageBean(usersList.size(),Integer.valueOf(current),10);
pageBean.setList(usersList);
return pageBean;
}
@RequestMapping("/users/create")
public PageBean createPuser(@RequestBody Puser puser) throws IOException {
int fid = (int)((Math.random()*9+1)*100000);
puser.setId(fid);
puserService.addUsers(puser);
PageBean pageBean = new PageBean();
List usersList = puserService.usersFuzzyQuery(new Puser(),0);
pageBean.setCurrent(1);
pageBean.setTotal(3);
pageBean.setList(usersList);
return pageBean;
}
@RequestMapping("/users/update")
public Integer updatePuser(@RequestBody Puser puser) throws IOException {
System.out.println(puser);
Integer updateRows = puserService.updateUser(puser);
return updateRows;
}
@RequestMapping("/users/delete/{id}")
public Integer deletePuser(HttpServletRequest request, HttpServletResponse response, @PathVariable("id") Integer id) throws IOException {
System.out.println(id);
Integer deleteRows = puserService.deleteUser(id);
return deleteRows;
}
}
Service层
public interface PuserService {
//List usersFuzzyQuery(Puser puser);
List usersFuzzyQuery(Puser puser,Integer current);
void addUsers(Puser puser);
Integer updateUser(Puser puser);
Integer deleteUser(Integer id);
}
import javax.annotation.Resource;
import java.util.List;
@Service
public class PuserServiceImpl extends ServiceImpl implements PuserService {
@Resource
private PuserMapper puserMapper;
@Override
public List usersFuzzyQuery(Puser puser,Integer current) {
List usersList = puserMapper.usersFuzzyQuery(puser,current);
return usersList;
}
@Override
public void addUsers(Puser puser) {
boolean result = this.insert(puser);
}
@Override
public Integer updateUser(Puser puser) {
Integer ret = puserMapper.updateById(puser);
return ret;
}
@Override
public Integer deleteUser(Integer id) {
Integer ret = puserMapper.deleteById(id);
return ret;
}
}
Dao层
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface PuserMapper extends BaseMapper {
// 模糊查询
List usersFuzzyQuery(@Param("user") Puser puser,@Param("current") Integer current);
void addUsers(Puser puser);
}
Mybtais配置文件
SELECT * FROM p_user where 1=1
AND name like CONCAT('%',#{user.name},'%')
AND address like CONCAT('%',#{user.address},'%')
limit 10 OFFSET #{1}
启动类
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
@MapperScan("com.huawei.**.mapper")
public class ServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceApplication.class, args);
}
@RequestMapping("/index")
String index(){
return "Hello Basedata";
}
}