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

 

測試

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM