基于SpringBoot+MyBatis+MySQL实现一个可进行数据库访问的web项目

一、基于SpringBoot进行MyBatis持久层框架的整合

1、在pom.xml添加相关依赖

1 1.添加依赖
2 <!-- 添加MyBatis依赖-->
3     <dependency>
4       <groupId>org.mybatis.spring.boot</groupId>
5       <artifactId>mybatis-spring-boot-starter</artifactId>
6       <version>2.1.0</version>
7 </dependency>

 

2、在application.yml进行配置

 

1 2.配置mapper文件路径和实体类路径(在main下新建resources文件夹,在其下新建application.yml里配置,注意语法)
2 #MyBatis配置
3 mybatis:
4   #mapper文件
5   mapper-locations: mapper/*Mapper.xml
6   #实体类,相当于@Compoment
7   type-aliases-package: org.lkw.pojo

 

 

二、基于SpringBoot进行MySQL的整合

1、在pom.xml添加相关依赖

 

 1 <!-- 添加MySQL连接驱动依赖-->
 2     <dependency>
 3       <groupId>mysql</groupId>
 4       <artifactId>mysql-connector-java</artifactId>
 5       <version>5.1.46</version>
 6     </dependency>
 7     <!-- 添加数据库连接池依赖-->
 8     <dependency>
 9       <groupId>com.alibaba</groupId>
10       <artifactId>druid</artifactId>
11       <version>1.0.29</version>
12     </dependency>

 

2、在application.yml进行配置

 

 1 2.配置数据源(在application.yml里配置,注意语法)
 2 #服务器端口配置
 3 server:
 4   port: 80
 5   servlet:
 6     context-path:
 7 
 8 #spring配置
 9 spring:
10   # 配置文件选择(dev,pro)
11   profiles:
12      active: dev
13   #数据源配置
14   datasource:
15     driverClassName: com.mysql.jdbc.Driver
16     url: jdbc:mysql://127.0.0.1:3306/company_test_db?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
17     username: root
18     password: xxxx
19     type: com.alibaba.druid.pool.DruidDataSource

 

三、定义Demo进行测试

1、由于代码较多,此处就不一一展示,只是说明以下实现步骤即可

 

 1 1.创建启动类Application,在@SpringBootApplication注解下添加dao文件扫描
 2 @SpringBootApplication //springboot的全局的自动配置注解,相当于springmvc.xml,会创建spring容器,对该类所在包和子包进行扫描注解,把Beans存入容器中
 3 @MapperScan("org.lkw.dao")  //扫描指定包
 4 public class Application {
 5 
 6     public static void main(String[] args) {
 7         // 固定的代码 启动springboot程序 初始化spring容器
 8         SpringApplication.run(Application.class, args);
 9     }
10 
11 }
12 2.添加Controller(@Autowired注入Service)
13 3.添加Service(定义Service方法)
14 4.添加Service实现类impl(@Service标记,且实现Service接口,@Resource标记且调用Dao方法)
15 5.添加Dao(定义Dao方法,即数据库操作)
16 6.在Resources下创建mapper文件夹,然后添加xxxMapper类(定义sql,通过namespace与dao接口关联起来)

 

2、成果

基于SpringBoot+MyBatis+MySQL实现一个可进行数据库访问的web项目

 

 基于SpringBoot+MyBatis+MySQL实现一个可进行数据库访问的web项目

 

 看到此处,基于SpringBoot进行MyBatis和MySQL的整合成功,恭喜恭喜!!!

3、FAQ(问题集锦)

 

(1)Springboot项目运行出现Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing a block mapping?

原因:yml配置文件语法错误

解决方法:先导依赖,通过加载使得依赖成功添加(不报红色了),然后再通过输入部分内容弹窗提示来进行属性输入,key和value之间要空一个格,正确语法输入效果如下所示

基于SpringBoot+MyBatis+MySQL实现一个可进行数据库访问的web项目

 

(2)no beans found for UserDao?

原因:使用@AutoWired根据类型注入bean找不到

解决方法:使用@Resource根据名称注入bean

 

(3)Invalid bound statement (not found): org.lkw.dao.UserMapper.getUserById?

原因:由于mapper.xml的路径配置错误,导致xml未被加载,所以就找不到xml里面定义的sql statement

解决方法:把上面的mapper文件路径改为xxxx.xml(.xml后缀名不能丢)

基于SpringBoot+MyBatis+MySQL实现一个可进行数据库访问的web项目

 

 

(4)Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

原因:根据MySQL 5.5.45+、5.6.26+和5.7.6+的要求,如果没有设置显式选项,则必须默认建立SSL连接。

解决方法:

基于SpringBoot+MyBatis+MySQL实现一个可进行数据库访问的web项目

 

 

上一篇:增删改查实现


下一篇:springboot后端写接口(入门)