目录
四、mybatis、mybatis-plus、Jpa的原理和简单使用
一、Springboot由来及入门
随着Node.js、Ruby、Groovy、PHP、Scala等脚本语言和敏捷开发渐呈主流之势,使Spring开发应用程序显得十分繁琐,大量的配置文件与第三方框架的整合,使得开发和部署效率较低。于是,Springboo应运而生。
为什么要使用Springboot?它有什么优点?
因为它简化了代码开发,避免了繁琐的配置工作。
优点:
1.约定优于配置
2.创建独立运行的Spring应用程序
3.内嵌Servlet容器
4.提供starter简化Maven配置
5.自动配置Spring
6.准生产的应用监控
7.无代码生成和XML配置
二、Spring boot核心配置
启动器:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
pom.xml:项目依赖文件
配置文件application.properties
#设置端口号
server.port=8082
#设置访问应用的上下文路径,contextpath
server.servlet.context-path=/myboot
yml不是以键=值的方式,而是 键:值,并且还有层级关系。
推荐使用yml的方式来写,删除application.properties
配置文件的优先级:application.properties>application.yml>appllication.yaml
Spring boot基本的包
1.Entity层
entity层又被称为实体类层,实体类通常包含私有成员变量和公共访问方法(getter 和 setter)可以用@Data注解轻松实现,用于存储和访问数据。在实体类中,成员变量通常与表中的列相对应,而访问方法则用于操作这些数据。
2.Service层
Service层通常是用来处理业务逻辑的部分,它还负责调用dao层,实现对数据的处理和业务逻辑的实现,然后返回给controller层。
3.Controller层
Controller层又称为控制类,处理HTTP请求。
4.Dao(Mapper)层
Dao又称为数据访问层,主要作用是实现对数据库的增删改查操作。
三、连接数据库
引入依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.28</version>
</dependency>
<!-- 导入Mybatis-Plus依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<!-- 导入lombok依赖 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
.yml连接数据库:
spring:
datasource:
url: jdbc:mysql://localhost:3306/db02?ServerTimezone=UTC
username: root
password: ***
driver-class-name: com.mysql.cj.jdbc.Driver
spring:
# mysql配置信息
datasource:
# 数据库地址 端口 数据库名
url: jdbc:mysql://127.0.0.1:3306/springboot_demo?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
username: root # 账号
password: root # 密码
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
mapper-locations: mapper/*.xml #这个配置是用来连接mapper接口和mapper配置类的
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #运行日志
map-underscore-to-camel-case: true #驼峰转换
type-aliases-package: com.example.springbootdemo.model #实体类扫描包
四、mybatis、mybatis-plus、Jpa的原理和简单使用
mybatis:是一个优秀的持久层的框架, 通过Dao层将业务逻辑和数据访问逻辑分离,是系统的设计更清晰,系统更容易维护和进行单元测试。它对JDBC操作数据库的过程进行封装,使得开发者只需要关注SQL语句本身,不需要再花费精力去处理其他的东西,如:注册驱动、创connection、创建statement、手动设置参数、结果集检索等JDBC繁杂的过程代码。mybatis通过XML配置文件或注解的方式配置要执行的各种Statement或preparedStatement,并通过Java对象和Statement中的SQL语句进行映射,最终生成执行的SQl语句,最后由mybatis执行SQL语句并将结果映射成Java对象返回。
mybatis依赖:
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
而mybatis-plus是一个增强工具,它在mybatis的基础上只做增强不做改变,是为简化开发、提高效率而生。
使用spring-boot整合mybatis时,要注意mybatis的映射文件的位置,而mybatis-plus不同,它里面包含了常见的数据库核心操作,一般不需要配置映射文件。
mybatis-plus依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1</version>
</dependency>
JPA:是一种规范或标准,用来操作实体对象,执行CRUD操作,使得框架在后台替代用户完成所有事情,Spring Data JPA是Spring提供的一套简化JPA开发的框架,提供了许多功能,如:分页、排序以及复杂查询等···
JPA为我们提供以下功能: ORM元数据:JPA支持XML和注解两种元数据形式,元数据用来描述对象和关系表之间的映射关系,框架据此将实体对象持久化到数据库中,如@Entity、@Table、@Transient等注解。
JPA的API:用来操作实体对象,执行CRUD操作,使框架在后台替我们完成所有的事情,是开发者从烦琐的JDBC和SQL代码中解脱出来
JPQL:通过面向对象而非面向数据库的查询语言来查询数据,避免程序的SQL语句过于读。
JPA依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
JPA配置:
#jpa配置
jpa:
show-sql: false
hibernate:
ddl-auto: create
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL5Dialect
五、前端模板引擎Thymeleaf的整合和使用
Thymeleaf:是一款支持HTML、XML、TEXT、Javascript、CSS、raw等的模板引擎,它可以完全取代JSP,与其他模板引擎相比,Thymeleaf是开箱即用的,不需要启动整个Web项目,其模板语法并不会破坏文档的结构,使用方便。
Thymelea依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<version>2.1.6.RELEASE</version>
</dependency>
Thymelea模板:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link href="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.staticfile.org/twitter-bootstrap/5.1.1/js/bootstrap.bundle.min.js"></script>
</head>
<body>
</body>
</html>
六、常用注解
基础注解:
@Service: 注解在类上,表示这是一个业务层bean
@Controller:注解在类上,表示这是一个控制层bean
@Repository: 注解在类上,表示这是一个数据访问层bean
@Component: 注解在类上,表示通用bean ,value不写默认就是类名首字母小写
@Autowired:按类型注入.默认属性required= true
@Resource: 按名称装配。
启动注解:
@SpringBootApplication:包含了@ComponentScan@Configuration@EnableAutoConfiguratio注解。
@ComponentScan:让spring Boot扫描到Configuration类并把它加入到程序上下文。
@SpringBootConfiguration :等同于spring的XML配置文件;使用Java代码可以检查类型安全。
@EnableAutoConfiguration :自动配置。