java之路 —— SpringBoot整合MyBatis

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: java之路 —— SpringBoot整合MyBatis

前言


将 Spring Boot 与数据库整合是非常重要的,因为数据库是大多数应用程序的核心,它存储了应用程序的数据,包括用户信息、订单信息、商品信息等等。通过将 Spring Boot 与数据库整合,我们可以方便地操作数据库,实现数据的持久化和管理。


Spring Boot 提供了很多方便的方式来与数据库进行整合,包括使用 JDBC、JPA、Hibernate、MyBatis 等 ORM 框架。我们只需要在项目中添加相应的依赖,然后进行配置,就可以方便地操作数据库了。


通过将 Spring Boot 与数据库整合,我们可以实现以下功能:


1. 数据持久化:将数据保存到数据库中,以便后续使用。

2. 数据查询:从数据库中查询数据,并将其返回给用户。

3. 数据更新:更新数据库中的数据,以保持数据的一致性。

4. 数据删除:删除数据库中的数据,以保持数据的完整性。


总的来说,将 Spring Boot 与数据库整合可以帮助我们更加方便地操作数据库,提高开发效率,实现数据的持久化和管理,从而使应用程序更加稳定和可靠。


步骤


所以在整合Mybatis之前呢,咱么还得先做一些准备工作,咱么首先使用SpringInitializer来构建

1.SpringBoot的基础工程,然后在此基础上再进行整合Mybatis

1.创建数据库

2.建数据库表


这里先假设:

名叫t_user,这张用户表有三个属性,分别是:

id 唯一标记

username 用户名称

age 年龄

# 数据库脚本文件 
SET NAMES utf8mb4;
--  ----------------------------
--  Table structure for t_user
--  ----------------------------
DROP  TABLE IF  EXISTS  `t_user`;
CREATE  TABLE `t_user` (
`id` int(11)  NOT NULL  AUTO_INCREMENT,
`username` varchar(255) NOT NULL, 
`age` varchar(255)  DEFAULT NULL, 
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; 
# 插入数据  
INSERT  INTO  `t_user`(username, age) VALUES  ('张三',  '18');  
INSERT  INTO  `t_user`(username, age) VALUES  ( '李四', '20');  
INSERT  INTO  `t_user` (username, age) VALUES ('王五',  '22');


2. 然后这里需要配置一下application.properties( .yml)的配置

# 端口的配置
server.port=8081
# mapper xml 指定.
mybatis.mapper-locations=classpath*:mapper/*Mapper.xml  
# 数据库访问配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#将t_user改成自己的数据库的名称
spring.datasource.url=jdbc:mysql://localhost:3306/t_user?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456

这里注意一下,添加MySQL驱动,这里如果不指定版本默认是8.0的版本,当然你也可以指定版本,8.0的版本这里有一问比较坑的问题:


MySQL数据库默认使用的是美国的时区,而我们连接的时候用的是中国的北京时间,然后比美国晚上8个小时,所以当我们在连接数据库的时候要设置一下时区为东八区ServerTimezone=UTC

驱动类

MySQL5.x的版本使用的驱动类是com.mysql.jdbc.Driver

MySQL8.x的版本使用的驱动类是com.mysql.cj.jdbc.Driver


3. Maven的pom.xml文件 需要导入的依赖---可以在创建SpringBoot项目时可以勾选导入的技术栈

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.arm</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.8.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.0</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>


其中需要集成druid,使用连接池。

Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBossDataSource等其他方面。

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.0</version>
</dependency>


4. 在Resource包下创建一个Mapper包,再创建一个与com.demo包下的一个mapper接口一样的mapper.xml文件,用来写入SQL语句;

注意的是接口方法名称要和SQL中的id名一样

<mapper namespace="com.demo.mapper">
  <select id="selectUserList" resultType="com.demo.Dao.user">
    select * form t_user;
  </select>
</mapper>


这里是mapper接口

public interface userMapper(){
public list<user> selectUserList();
}


5.测试一下

@SpringBootApplication  
@MapperScan(basePackages={"com.demo.mapper"}) //进行扫包
public  class DemoApplication {
  public static void main(String[]  args) {
      SpringApplication.run(DemoApplication.class,args);
  }
}


@RestController 
public class DemoController {
  @Autowired  
  private UserMappper userMappper;
  /** 
   *  查询所有用户信息  
   */ 
  @GetMapping("/hello") 
  public List<User> hello() {
      List<User> users = userMappper.selectUserList();  
      return users;
  }
}


image.png

ok,成功

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
21天前
|
SQL Java 数据库连接
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
【mybatis】第一篇,Springboot中使用插件PageHelper不生效解决方案
|
6天前
|
Java Nacos 开发者
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
|
12天前
|
人工智能 前端开发 Java
Java语言开发的AI智慧导诊系统源码springboot+redis 3D互联网智导诊系统源码
智慧导诊解决盲目就诊问题,减轻分诊工作压力。降低挂错号比例,优化就诊流程,有效提高线上线下医疗机构接诊效率。可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室。
156 10
|
12天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
13天前
|
存储 数据可视化 安全
Java全套智慧校园系统源码springboot+elmentui +Quartz可视化校园管理平台系统源码 建设智慧校园的5大关键技术
智慧校园指的是以物联网为基础的智慧化的校园工作、学习和生活一体化环境,这个一体化环境以各种应用服务系统为载体,将教学、科研、管理和校园生活进行充分融合。无处不在的网络学习、融合创新的网络科研、透明高效的校务治理、丰富多彩的校园文化、方便周到的校园生活。简而言之,“要做一个安全、稳定、环保、节能的校园。
37 6
|
17天前
|
JavaScript 小程序 Java
Java智慧校园系统源码springboot + vue智慧学校源码 微信小程序+电子班牌
智慧校园的建设逐渐被师生、家长认可接受,智慧校园通过对在校师生、教务等所有人员的信息以及各种信息搜集与储存,进行数据优化与管理,为师生们提供更加智能化的校园服务。未来智慧校园将不再是一个陌生词,而会真正地应用在更多的校园管理中,让我们的校园生活变得更加美好
29 2
|
18天前
|
Java 关系型数据库 MySQL
整合SpringBoot与MyBatis时报错时区异常
整合SpringBoot与MyBatis时报错时区异常
15 0
|
18天前
|
存储 物联网 大数据
Java+BS +saas云HIS系统源码SpringBoot+itext + POI + ureport2数字化医院系统源码
医院云HIS系统是一种运用云计算、大数据、物联网等新兴信息技术的业务和技术平台。它按照现代医疗卫生管理要求,在特定区域内以数字化形式收集、存储、传递和处理医疗卫生行业的数据。通过云HIS系统,可以实现区域内医疗卫生信息资源的集中统管、统一调配、按需服务,为居民、医疗机构、卫生管理机关和其他机构提供云服务。
25 1
|
19天前
|
消息中间件 Java 关系型数据库
JAVA云HIS医院管理系统源码、基于Angular+Nginx+ Java+Spring,SpringBoot+ MySQL + MyCat
JAVA云HIS医院管理系统 常规模版包括门诊管理、住院管理、药房管理、药库管理、院长查询、电子处方、物资管理、媒体管理等,为医院管理提供更有力的保障。 HIS系统以财务信息、病人信息和物资信息为主线,通过对信息的收集、存储、传递、统计、分析、综合查询、报表输出和信息共享,及时为医院领导及各部门管理人员提供全面、准确的各种数据。
|
21天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)