springboot集成mybatisplus小例子

集成mybatisplus后,简单的CRUD就不用写了,如果没有特别的sql,就可以不用mapper的xml文件的。

目录

pom.xml文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 4     <modelVersion>4.0.0</modelVersion>
 5     <parent>
 6         <groupId>org.springframework.boot</groupId>
 7         <artifactId>spring-boot-starter-parent</artifactId>
 8         <version>1.5.21.RELEASE</version>
 9         <relativePath/> <!-- lookup parent from repository -->
10     </parent>
11     <groupId>com.xiaostudy</groupId>
12     <artifactId>demo1</artifactId>
13     <version>0.0.1-SNAPSHOT</version>
14     <name>demo1</name>
15     <description>Demo project for Spring Boot</description>
16
17     <properties>
18         <java.version>1.8</java.version>
19     </properties>
20
21     <dependencies>
22         <!-- spring-boot -->
23         <dependency>
24             <groupId>org.springframework.boot</groupId>
25             <artifactId>spring-boot-starter-web</artifactId>
26         </dependency>
27         <dependency>
28             <groupId>org.springframework.boot</groupId>
29             <artifactId>spring-boot-starter</artifactId>
30         </dependency>
31         <dependency>
32             <groupId>org.springframework.boot</groupId>
33             <artifactId>spring-boot-starter-test</artifactId>
34             <scope>test</scope>
35         </dependency>
36
37         <!--mybatis-plus自动的维护了mybatis以及mybatis-spring的依赖,
38         在springboot中这三者不能同时的出现,避免版本的冲突,表示:跳进过这个坑-->
39         <dependency>
40             <groupId>com.baomidou</groupId>
41             <artifactId>mybatis-plus-boot-starter</artifactId>
42             <version>3.1.1</version>
43         </dependency>
44
45         <!-- 引入Druid依赖,阿里巴巴所提供的数据源 -->
46         <dependency>
47             <groupId>com.alibaba</groupId>
48             <artifactId>druid</artifactId>
49             <version>1.0.29</version>
50         </dependency>
51
52         <!-- 提供mysql驱动 -->
53         <dependency>
54             <groupId>mysql</groupId>
55             <artifactId>mysql-connector-java</artifactId>
56             <version>5.1.38</version>
57         </dependency>
58
59     </dependencies>
60
61     <build>
62         <plugins>
63             <plugin>
64                 <groupId>org.springframework.boot</groupId>
65                 <artifactId>spring-boot-maven-plugin</artifactId>
66             </plugin>
67         </plugins>
68     </build>
69
70 </project>

实体类User

 1 package com.xiaostudy.demo1.entity;
 2
 3 import com.baomidou.mybatisplus.annotation.TableName;
 4
 5 import java.io.Serializable;
 6
 7 @TableName("t_user")
 8 public class User implements Serializable {
 9     private String id;
10     private String userName;
11     private String userPassword;
12
13     public String getId() {
14         return id;
15     }
16
17     public void setId(String id) {
18         this.id = id;
19     }
20
21     public String getUserName() {
22         return userName;
23     }
24
25     public void setUserName(String userName) {
26         this.userName = userName;
27     }
28
29     public String getUserPassword() {
30         return userPassword;
31     }
32
33     public void setUserPassword(String userPassword) {
34         this.userPassword = userPassword;
35     }
36
37     @Override
38     public String toString() {
39         return "User{" +
40                 "id=‘" + id + ‘\‘‘ +
41                 ", userName=‘" + userName + ‘\‘‘ +
42                 ", userPassword=‘" + userPassword + ‘\‘‘ +
43                 ‘}‘;
44     }
45 }

Dao[也叫Mapper]

 1 package com.xiaostudy.demo1.mapper;
 2
 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 4 import com.xiaostudy.demo1.entity.User;
 5 import org.springframework.stereotype.Repository;
 6
 7 /**
 8  * <p>
 9  * Mapper接口
10  * </p>
11  *
12  * @author xiaostudy
13  * @since 2019-09-15
14  */
15 @Repository
16 public interface UserDao extends BaseMapper<User> {
17 }

Service

1 package com.xiaostudy.demo1.service;
2
3 import com.baomidou.mybatisplus.extension.service.IService;
4 import com.xiaostudy.demo1.entity.User;
5
6 public interface UserService extends IService<User> {
7 }

Service实现类

 1 package com.xiaostudy.demo1.service.impl;
 2
 3 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 4 import com.xiaostudy.demo1.entity.User;
 5 import com.xiaostudy.demo1.mapper.UserDao;
 6 import com.xiaostudy.demo1.service.UserService;
 7 import org.springframework.stereotype.Service;
 8
 9 @Service
10 public class UserServiceImpl extends ServiceImpl<UserDao, User> implements UserService {
11 }

Controller

package com.xiaostudy.demo1.controller;

import com.xiaostudy.demo1.entity.User;
import com.xiaostudy.demo1.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.Date;
import java.util.List;

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping("/getAll")
    public String getAll() {
        List<User> list = userService.list();
        System.out.println("list:" + list);
        return list.toString();
    }

    @RequestMapping("/insert")
    public String insert() {
        User user = new User();
        // 不设置id的话,会自动生成一个UUID
//        user.setId(new Date().getTime() + "");
        user.setUserName("aaa");
        user.setUserPassword("bbb");
        boolean save = userService.save(user);
        return getAll();
    }
}

application-jdbc.yml

 1 #数据源
 2 spring:
 3   security:
 4     basic:
 5       enabled: false
 6   datasource:
 7     url: jdbc:mysql://127.0.0.1:3306/my_test?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false
 8     username: root
 9     password: 密码
10     driver-class-name: com.mysql.jdbc.Driver
11     druid:
12       # 初始化时建立物理连接的个数。初始化发生在显示调用init方法,或者第一次getConnection时
13       initialSize: 1
14       # 最小连接池数量
15       minIdle: 1
16       # 最大连接池数量
17       maxActive: 10
18       # 配置获取连接等待超时的时间
19       maxWait: 10000
20       # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
21       timeBetweenEvictionRunsMillis: 60000
22       # 配置一个连接在池中最小生存的时间,单位是毫秒
23       minEvictableIdleTimeMillis: 300000
24       # 验证连接有效与否的SQL,不同的数据配置不同
25       validationQuery: select 1
26       # 建议配置为true,不影响性能,并且保证安全性。
27       # 申请连接的时候检测,如果空闲时间大于
28       # timeBetweenEvictionRunsMillis,
29       # 执行validationQuery检测连接是否有效。
30       testWhileIdle: true
31       # 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
32       # 这里建议配置为TRUE,防止取到的连接不可用
33       testOnBorrow: true
34       # 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
35       testOnReturn: false
36       # 是否缓存preparedStatement,也就是PSCache。
37       # PSCache对支持游标的数据库性能提升巨大,比如说oracle。
38       # 在mysql5.5以下的版本中没有PSCache功能,建议关闭掉。
39       # 作者在5.5版本中使用PSCache,通过监控界面发现PSCache有缓存命中率记录,
40       # 该应该是支持PSCache。
41       # 打开PSCache,并且指定每个连接上PSCache的大小
42       poolPreparedStatements: true
43       maxPoolPreparedStatementPerConnectionSize: 20
44       # 属性类型是字符串,通过别名的方式配置扩展插件,
45       # 常用的插件有:
46       # 监控统计用的filter:stat
47       # 日志用的filter:log4j
48       # 防御sql注入的filter:wall
49       filters: stat
50
51 # ====================MybatisPlus====================
52 mybatis-plus:
53   # 如果是放在src/main/java目录下 classpath:/com/yourpackage/*/mapper/*Mapper.xml
54   # 如果是放在resource目录 classpath:/mapper/*Mapper.xml
55   mapper-locations: classpath*:com/frame/**/**.xml,classpath*:mapping/**/**.xml
56   #实体扫描,多个package用逗号或者分号分隔
57   typeAliasesPackage: com.frame.**.entity,com.frame.**.dto
58   global-config:
59     #刷新mapper 调试神器
60     db-config:
61       #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
62       id-type: UUID
63       #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
64       field-strategy: 2
65       #驼峰下划线转换
66       column-underline: false
67       #数据库大写下划线转换
68 #      capital-mode: true
69       #逻辑删除配置
70       logic-delete-value: 1
71       logic-not-delete-value: 0
72     refresh: true
73   configuration:
74     #配置返回数据库(column下划线命名&&返回java实体是驼峰命名),自动匹配无需as(没开启这个,SQL需要写as: select user_id as userId)
75     map-underscore-to-camel-case: true
76     cache-enabled: false
77     #配置JdbcTypeForNull, oracle数据库必须配置
78     jdbc-type-for-null: ‘null‘
79     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
80     database-id: mysql

application.yml

1 server:
2   port: 8080
3
4 spring:
5   profiles:
6     include: jdbc

测试

原文地址:https://www.cnblogs.com/xiaostudy/p/11525092.html

时间: 2024-10-30 06:05:02

springboot集成mybatisplus小例子的相关文章

dubbo入门和springboot集成dubbo小例子

从零开始搭建springboot-dubbo的例子 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案 一. Dubbo的简单介绍 1. 网站架构的发展历程 网站架构随着业务的发展,逻辑越来越复杂,数据量越来越大,交互越来越多....... 单一应用架构(OORM) 当网站流量很小时,将所有的功能部署到一起,以减少部署节点和成本.此时,只需要使用简化增删改查的工作量,采用数据访问框架(ORM). 垂直应用架构 (MVC) 当访问量逐

SpringBoot集成MybatisPlus报错

SpringBoot集成MybatisPlus报错 启动的时候总是报如下错误: java.lang.annotation.AnnotationFormatError: Invalid default: public abstract java.lang.Class 解决方案 需要一个mybatis-spring-boot-starter的包,在pom文件加上之后,完美解决. <dependency> <groupId>org.mybatis.spring.boot</grou

springboot 集成mybatisplus

1.加入MybatisPlus依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.1.tmp</version> </dependency> 原文地址:https://www.cnblogs.com/xidianzxm/p/12393927.

springboot集成mybatis环境搭建以及实现快速开发微服务商品模块基本的增删改查!

之前学习了springboot和mybatis3的一些新特性,初步体会了springboot的强大(真的好快,,,,,),最近趁着复习,参考着以前学习的教程,动手写了一个springboot实战的小例子! 一 创建表以及实体 使用简单的五个字段商品表,主键采用UUID字符串,价格使用BigDecimal,本来是想在linux数据库中建立表的,实在是懒不想启动虚拟机(这么简单也觉得没必要),,sql语句如下: create table products( pid varchar(32) not n

SpringBoot集成Shiro 实现动态加载权限

一.前言 本文小编将基于 SpringBoot 集成 Shiro 实现动态uri权限,由前端vue在页面配置uri,Java后端动态刷新权限,不用重启项目,以及在页面分配给用户 角色 . 按钮 .uri 权限后,后端动态分配权限,用户无需在页面重新登录才能获取最新权限,一切权限动态加载,灵活配置 基本环境 spring-boot 2.1.7 mybatis-plus 2.1.0 mysql 5.7.24 redis 5.0.5 温馨小提示:案例demo源码附文章末尾,有需要的小伙伴们可参考哦 ~

springboot集成swagger2构建RESTful API文档

在开发过程中,有时候我们需要不停的测试接口,自测,或者交由测试测试接口,我们需要构建一个文档,都是单独写,太麻烦了,现在使用springboot集成swagger2来构建RESTful API文档,可以在访问接口上,直接添加注释 先介绍一下开发环境: jdk版本是1.8 springboot的版本是1.4.1 开发工具为 intellij idea 我们先引入swagger2的jar包,pom文件引入依赖如下: <dependency> <groupId>io.springfox&

Spring 基础,用小例子来理解它

1.什么是Spring? 我们都知道框架,我学的就是struts2,mybatis和spring 三大框架 struts2处于表现层和业务处理 mybatis处理业务处理和数据访问 而Spring是无处不在的. 以上是我对Spring的理解 Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来.它是为了

SpringBoot集成gRPC微服务工程搭建实践

前言本文将使用Maven.gRPC.Protocol buffers.Docker.Envoy等工具构建一个简单微服务工程,笔者所使用的示例工程是以前写的一个Java后端工程,因为最近都在学习微服务相关的知识,所以利用起来慢慢的把这个工程做成微服务化应用.在实践过程踩过很多坑,主要是经验不足对微服务还是停留在萌新阶段,通过本文记录创建微服务工程碰到一些问题,此次实践主要是解决以下问题: 如何解决.统一服务工程依赖管理SpringBoot集成gRPC管理Protocol buffers文件使用En

springboot集成mybatis进行开发

1.首先创建springboot项目 点击:http://start.spring.io/  可以在线创建springboot项目 2.加入mybatis的pom文件 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.4</version