1、关于数据库url说明
(1)时区设定:serverTimezone = GMT%2B8 ------%2B = “+”号
(2)编码格式设定:useUnicode = true & characterEncoding = utf8
(3)是否自动的重新连接:autoReconnect = true
(4)是否允许批量操作:allowMultiQueries = true
2、Mybatis的配置说明
mybatis:
# 定义别名包
type-aliases-package: com.jt.pojo # 可以简化mapper映射文件的编辑
# 加载user标签的mapper文件
mapper-locations: classpath:/mybatis/mapper/*.xml # 扫描具体的映射文件
# 开启驼峰映射,则必须满足要求,前提:Mybatis进行映射时必须满足属性名称一致,只要名称一致,则可以自动映射
configuration:
map-underscore-to-camel-case: true
<!--
前提: Mybatis进行映射时必须满足属性名称一致
业务说明:
表: user_id user_name
对象: userId userName
解决方案: 开启mybatis驼峰规则映射
原理:
字段名称user_id~~~去除"_"线~~~userid
~~~~首字母大写userId~~~~~属性userId
只要名称一致,则可以自动映射.
注意事项: 如果开启驼峰规则,则必须满足要求.
问: 对象的属性user_id 与字段user_id能否映射? 不能映射
-->
3、优化@Mapper注解
在主启动类上添加**@MapperScan(“com.jt.dao”)**注解,表示采用包扫描的方式动态导入,扫描dao包下的所有类
@SpringBootApplication
@MapperScan("com.jt.dao") //主要告诉mapper的包路径,会自动的完成包扫描
public class SpringbootDemo2MybatisApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootDemo2MybatisApplication.class, args);
}
}
4、Mybatis-Plus介绍
4.1、ORM对象关系映射
对象关系映射(Object Relational Mapping,ORM,O/RM,O/R mapping),是一种程序设计技术,于用于实现面向对象加粗样式编程语言里不同类型系统的数据之间的转换。从效率上说,他其实是创建了一个可以在编程语言里使用的“询比对象数据库”。
实质:对象与数据库中表完成映射
分析:
1、对象与表一一映射
2、对象中的属性与表中的字段一一映射
说明:Mybatis满足ORM对象映射的要求,但是Mybatis是一种半自动化的ORM映射框架
案例1:Mybatis进行数据库查询是,是否可以直接转化为对象,供用户使用呢?–true,表与对象完成映射
案例2:Mybatis在进行数据库操作是,能否利用对象直接操作呢?–false,不可以,需要自己手写SQL
Hibernate–开放源代码的对象关系映射框架
单表操作:***CURD***操作–增删改查
4.2、MP介绍
https://baomidou.com/
Mybatis-Plus(MP)是一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发、提高效率而生。
4.4、MP特性:
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
内置性能分析插件:可输出 Sql 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作
支持的数据库
- mysql 、mariadb 、oracle 、db2 、h2 、hsql 、sqlite 、postgresql 、sqlserver 、presto 、Gauss 、Firebird
- Phoenix 、clickhouse 、Sybase ASE 、 OceanBase 、达梦数据库 、虚谷数据库 、人大金仓数据库 、南大通用数据库
框架结构
4.5、MP入门案例
4.5.1、注入jar包
要先删除Mybatis的jar包,否则会出现错误问题
<!--spring整合mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot