当前位置:   article > 正文

Spring Boot整合MyBatis操作mysql数据库实战(附源码 超详细)_spring boot mybatis mysql 源码

spring boot mybatis mysql 源码

觉得有帮助或需要源码请点赞关注收藏后评论区留言或者私信

MyBatis本来是Apache的一个开源项目iBatis 2010年这个项目由Apache Software Foundation迁移到了Google Code 并且改名为MyBatis

MyBatis是一个基于Java的持久层框架,MyBatis提供的持久层框架包括SQL Maps和Data Access Objects(DAO) 它消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索,MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs映射成数据库中的记录

下面实战讲解如何在Spring Boot应用中使用MyBatis框架操作数据库 

1:创建Spring Boot Web应用

创建步骤可以参考这篇博客快速创建Spring Boot应用

2:修改pom.xml文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. -<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
  3. <modelVersion>4.0.0</modelVersion>
  4. -<parent>
  5. <groupId>org.springframework.boot</groupId>
  6. <artifactId>spring-boot-starter-parent</artifactId>
  7. <version>2.1.7.RELEASE</version>
  8. <relativePath/>
  9. <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.ch</groupId>
  12. <artifactId>ch6_6</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>ch6_6</name>
  15. <description>Demo project for Spring Boot</description>
  16. -<properties>
  17. <java.version>11</java.version>
  18. </properties>
  19. -<dependencies>
  20. -<dependency>
  21. <groupId>org.springframework.boot</groupId>
  22. <artifactId>spring-boot-starter-web</artifactId>
  23. </dependency>
  24. <!-- 添加MySQL依赖 -->
  25. -<dependency>
  26. <groupId>mysql</groupId>
  27. <artifactId>mysql-connector-java</artifactId>
  28. <version>5.1.45</version>
  29. <!-- MySQL8.x时,请使用8.x的连接器 -->
  30. </dependency>
  31. <!-- MyBatis-Spring,Spring Boot应用整合MyBatis框架的核心依赖配置-->
  32. -<dependency>
  33. <groupId>org.mybatis.spring.boot</groupId>
  34. <artifactId>mybatis-spring-boot-starter</artifactId>
  35. <version>2.1.0</version>
  36. </dependency>
  37. -<dependency>
  38. <groupId>org.springframework.boot</groupId>
  39. <artifactId>spring-boot-starter-test</artifactId>
  40. <scope>test</scope>
  41. </dependency>
  42. </dependencies>
  43. -<build>
  44. -<plugins>
  45. -<plugin>
  46. <groupId>org.springframework.boot</groupId>
  47. <artifactId>spring-boot-maven-plugin</artifactId>
  48. </plugin>
  49. </plugins>
  50. </build>
  51. </project>

3:设置Web应用的上下文路径以及数据源配置信息

在application.properties配置如下内容

  1. server.servlet.context-path=/ch6_6
  2. ###
  3. ##数据源信息配置
  4. ###
  5. #数据库地址
  6. spring.datasource.url=jdbc:mysql://localhost:3306/springbootjpa?characterEncoding=utf8
  7. #数据库MySQL为8.x时,url为jdbc:mysql://localhost:3306/springbootjpa?useSSL=false&serverTimezone=Asia/Beijing&characterEncoding=utf-8
  8. #数据库用户名
  9. spring.datasource.username=root
  10. #数据库密码
  11. spring.datasource.password=root
  12. #数据库驱动
  13. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  14. #数据库MySQL为8.x时,驱动类为com.mysql.cj.jdbc.Driver
  15. #设置包别名(在Mapper映射文件中直接使用实体类名)
  16. mybatis.type-aliases-package=com.ch.ch6_6.entity
  17. #告诉系统在哪里去找mapper.xml文件(映射文件)
  18. mybatis.mapperLocations=classpath:mappers/*.xml
  19. #在控制台输出SQL语句日志
  20. logging.level.com.ch.ch6_6.repository=debug
  21. #让控制器输出的JSON字符串格式更美观
  22. spring.jackson.serialization.indent-output=true

4:创建实体类

此处不再赘述 可以参考这篇文章创建实体类

5:创建数据访问接口

  1. package com.ch.ch6_6.repository;
  2. import java.util.List;
  3. import org.apache.ibatis.annotations.Mapper;
  4. import com.ch.ch6_6.entity.MyUser;
  5. /**
  6. * MyBatis的Mapper映射接口
  7. */
  8. @Mapper
  9. public interface MyUserRepository {
  10. public List<MyUser> findAll();
  11. }

6:创建Mapper映射文件

在src/main/recources目录下  创建名为mappers的包,并在该包中创建SQL映射文件MyUserMapper.xml 代码如下

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper SYSTEM "http://mybatis.org/dtd/mybatis-3-mapper.dtd" PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN">
  3. -<mapper namespace="com.ch.ch6_6.repository.MyUserRepository">
  4. <select resultType="MyUser" id="findAll">select * from user </select>
  5. </mapper>

7:创建业务层

接口代码如下

  1. package com.ch.ch6_6.service;
  2. import java.util.List;
  3. import com.ch.ch6_6.entity.MyUser;
  4. public interface MyUserService {
  5. public List<MyUser> findAll();
  6. }

实现类代码如下

  1. package com.ch.ch6_6.service;
  2. import java.util.List;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.stereotype.Service;
  5. import com.ch.ch6_6.entity.MyUser;
  6. import com.ch.ch6_6.repository.MyUserRepository;
  7. @Service
  8. public class MyUserServiceImpl implements MyUserService{
  9. @Autowired
  10. private MyUserRepository myUserRepository;
  11. @Override
  12. public List<MyUser> findAll() {
  13. return myUserRepository.findAll();
  14. }
  15. }

8:创建控制器类

  1. package com.ch.ch6_6.controller;
  2. import java.util.List;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6. import com.ch.ch6_6.entity.MyUser;
  7. import com.ch.ch6_6.service.MyUserService;
  8. @RestController
  9. public class MyUserController {
  10. @Autowired
  11. private MyUserService myUserService;
  12. @RequestMapping("/findAll")
  13. public List<MyUser> findAll(){
  14. return myUserService.findAll();
  15. }
  16. }

9:在应用程序的主类中扫描Mapper接口

  1. package com.ch.ch6_6;
  2. import org.mybatis.spring.annotation.MapperScan;
  3. import org.springframework.boot.SpringApplication;
  4. import org.springframework.boot.autoconfigure.SpringBootApplication;
  5. @SpringBootApplication
  6. //配置扫描MyBatis接口的包路径
  7. @MapperScan(basePackages={"com.ch.ch6_6.repository"})
  8. public class Ch66Application {
  9. public static void main(String[] args) {
  10. SpringApplication.run(Ch66Application.class, args);
  11. }
  12. }

然后运行主类,接着访问http://localhost:8080/ch6_6/findAll即可

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/576704
推荐阅读
相关标签
  

闽ICP备14008679号