-
13 — springboot集成mybatis-plus — 更新完毕
1、mybatis-plus需要掌握的知识
1)、mybatis-plus是什么?
- 不写了,老衲一般都是直接进官网
- mybatis-plus官网地址:https://baomidou.com/guide/
- 技术也不说明了,会玩mybatis就会玩mybatis-plus
2)、mybatis-plus需要掌握的知识清单
注:知识清单中的sql性能分析插件在3.0+的版本中没有这个选项了,以前是直接放在官网的插件扩展中的,现在没有了,其他的知识点在官网都可以找到,搞懂之后直接复制粘贴即可
另:主键生成策略老衲觉得有一个人的博客写的挺不错的,链接如下:
https://www.cnblogs.com/haoxinyue/p/5208136.html
2、springboot集成mybatis-plus
2.1)、导入依赖
|
|
|
<!-- mybatis-plus需要的依赖--> |
|
<dependency> |
|
<groupId>com.baomidou</groupId> |
|
<artifactId>mybatis-plus-boot-starter</artifactId> |
|
<version>3.3.2</version> |
|
</dependency> |
|
<dependency> |
|
<groupId>com.alibaba</groupId> |
|
<artifactId>druid-spring-boot-starter</artifactId> |
|
<version>1.1.10</version> |
|
</dependency> |
|
2.2)、编写yml
|
|
|
spring: |
|
datasource: |
|
driver-class-name: com.mysql.cj.jdbc.Driver |
|
url: jdbc:mysql://localhost:3306/mybatis_spring?useUnicode=true&characterEncoding=utf-8 |
|
username: root |
|
password: "072413" |
|
type: com.alibaba.druid.pool.DruidDataSource |
|
|
|
mybatis-plus: |
|
configuration: |
|
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # mybatis-plus配置日志 |
|
map-underscore-to-camel-case: true # 开启驼峰映射 即:实体类属性名和数据库字段采用驼峰映射 |
|
auto-mapping-behavior: full # 自动映射字段 |
|
mapper-locations: classpath:mapper/*.xml # 如果使用了mybatis和mybatis-plus 那么这里就可以把mybatis的实现类xml集成进来 |
|
# 但是:最好别这种做,用了mybatis就别用mybatis-plus,二者只能用其一 |
|
|
|
注:别把mybatis和mybatis-plus一起集成到spring中,否则:很容易出问题,虽然:mybatis-plus是mybatis的增强版,既然是增强版,那么就不会抛弃它原有的东西,只会保留原有的东西,然后新增功能,但是:mybatis和mybatis-plus集成到一起之后很容易造成版本冲突,因此:建议二者只选其一集成
2.3)、编写实体类
|
|
|
package cn.xiegongzi.entity; |
|
|
|
import com.baomidou.mybatisplus.annotation.IdType; |
|
import com.baomidou.mybatisplus.annotation.TableField; |
|
import com.baomidou.mybatisplus.annotation.TableId; |
|
import com.baomidou.mybatisplus.annotation.TableName; |
|
import lombok.AllArgsConstructor; |
|
import lombok.Data; |
|
import lombok.NoArgsConstructor; |
|
|
|
import java.io.Serializable; |
|
|
|
|
|
|
|
|
|
// 表名注解 |
|
public class User implements Serializable { |
|
|
|
// 表示主键,这个主键是一个Long类型的值( 即:snowflake雪花算法 ) |
|
private Integer id; |
|
// 数据库字段名 就是:当实体类中的字段和数据库字段不一样时可以使用 |
|
private String name; |
|
private String phone; |
|
} |
|
2.4)、编写mapper
|
|
|
package cn.xiegongzi.mapper; |
|
|
|
import cn.xiegongzi.entity.User; |
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|
import org.apache.ibatis.annotations.Mapper; |
|
|
|
// @Component |
|
// @Configuration |
|
// 注:这个对象托管,我测试过了,只有两种方法可以做到 即:上面这两个注解无法实现,测试时会报错 |
|
|
|
// @MapperScan("cn.xiegongzi.mapper") 在启动类中加入这个注解也可以实现 |
|
public interface IUserMapper extends BaseMapper<User> { |
|
// BaseMapper 和 JPA一样,内部有很多方法 , 即:CRUD.....,还有分页( 分页就是page()这个方法 ) |
|
// BaseMapper原来的样子是:BaseMapper<T> T表示实体类 类型 |
|
|
|
} |
|
注意点:别用@Component
和@Configuration
这两个注解实现对象托管,会报错:错误如下
报的错很多,总之一句话就是:导入的依赖没有导入,即:依赖我已经导入了,但是:报我没有相应的依赖,我得出的理由:mybatis / mybatis-plus相对spring来说是外部的,因此:使用spring的@Component
和@Configuration
注解来实现对象托管,mybatis并不买账,只能用它自己的注解才可以
附:BaseMapper<T>
提供的方法如下:
2.5)、测试
其他的知识,在mybatis-plus官网中都有
作者:紫邪情
出 处:https://www.cnblogs.com/xiegongzi/p/15554243.html
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比