java4.6 Spring Boot整合MyBatis

news/2024/9/16 19:05:36/

Spring Boot 整合MyBatis

(一)基础环境搭建

1、数据准备

(1)创建博客数据库blog

CREATE DATABASE blog

在这里插入图片描述
在这里插入图片描述
(2)在博客数据库里创建文章表t_article

CREATE TABLE `t_article` (`id` int(20) NOT NULL AUTO_INCREMENT COMMENT '文章编号',`title` varchar(200) DEFAULT NULL COMMENT '文章标题',`content` longtext COMMENT '文章内容',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

在这里插入图片描述

(3)在文章表t_article里插入数据记录

INSERT INTO `t_article` VALUES ('1', 'Spring Boot基础入门', '从入门到精通讲解...');
INSERT INTO `t_article` VALUES ('2', 'Spring Cloud基础入门', '从入门到精通讲解...');
INSERT INTO `t_article` VALUES ('3', '安卓开发权威指南', '从入门到精通讲解...');

在这里插入图片描述

(4)在博客数据库里创建评论表t_comment

CREATE TABLE `t_comment` (`id` int(20) NOT NULL AUTO_INCREMENT COMMENT '评论编号',`content` longtext COMMENT '评论内容',`author` varchar(200) DEFAULT NULL COMMENT '评论作者',`a_id` int(20) DEFAULT NULL COMMENT '关联的文章编号',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

在这里插入图片描述
(5)在评论表t_comment里插入数据记录

INSERT INTO `t_comment` VALUES ('1', '很全、很详细', '小明', '1');
INSERT INTO `t_comment` VALUES ('2', '赞一个', '李文', '3');
INSERT INTO `t_comment` VALUES ('3', '很详细,喜欢', '童文宇', '1');
INSERT INTO `t_comment` VALUES ('4', '很好,非常详细', '钟小凯', '2');
INSERT INTO `t_comment` VALUES ('5', '很不错', '张三丰', '2');
INSERT INTO `t_comment` VALUES ('6', '操作性强,真棒', '唐雨涵', '3');
INSERT INTO `t_comment` VALUES ('7', '内容全面,讲解清晰', '张杨', '1');

在这里插入图片描述

2、创建项目,引入相应启动器

(1)创建Spring Boot项目MyBatisDemo
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看pom.xml文件,再添加一个配置处理器依赖

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.12</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>net.huawei.boot</groupId><artifactId>springbootmybatisdemo</artifactId><version>0.0.1-SNAPSHOT</version><name>SpringBootMyBatisDemo</name><description>Demo project for Spring Boot</description><properties><java.version>11</java.version></properties><dependencies><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.3.1</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

更新Maven项目依赖
在这里插入图片描述
(2)创建评论实体类 - Comment
在net.huawei.boot根包里创建bean子包,在子包里创建Comment类
在这里插入图片描述

package net.huawei.boot.bean;/*** 功能:评论实体类* 作者:* 日期:2023年06月06日*/
public class Comment {private Integer id;private String content;private String author;private Integer aId;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public Integer getaId() {return aId;}public void setaId(Integer aId) {this.aId = aId;}@Overridepublic String toString() {return "Comment{" +"id=" + id +", content='" + content + '\'' +", author='" + author + '\'' +", aId=" + aId +'}';}
}

全局配置文件中必须配置以下语句,否则查出数据为null
在这里插入图片描述
(3)创建文章实体类 - Article
在net.huawei.boot.bean包里创建Article类
在这里插入图片描述

package net.huawei.boot.bean;import java.util.List;/*** 功能:文章实体类* 作者:* 日期:2023年06月06日*/
public class Article {private Integer id;private String title;private String content;private List<Comment> comments;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public List<Comment> getComments() {return comments;}public void setComments(List<Comment> comments) {this.comments = comments;}@Overridepublic String toString() {return "Article{" +"id=" + id +", title='" + title + '\'' +", content='" + content + '\'' +", comments=" + comments +'}';}
}

3、编写配置文件

将全局配置文件application.properties更名为application.yaml
在这里插入图片描述
(1)在全局配置文件中进行数据库连接配置
在这里插入图片描述

(2)数据源类型配置(以阿里巴巴的Druid数据源为例)
在这里插入图片描述

(3)在全局配置文件里覆盖默认参数
在这里插入图片描述

(二)使用注解方式整合MyBatis

1、创建评论映射器接口 - CommentMapper

在这里插入图片描述

package net.huawei.boot.mapper;import net.huawei.boot.bean.Comment;
import org.apache.ibatis.annotations.*;import java.util.List;/*** 功能:评论映射器接口* 作者:* 日期:2023年06月06日*/
@Mapper // 交给Spring容器管理
public interface CommentMapper {@Insert("insert into t_comment values(#{id}, #{content}, #{author}, #{aId})")int insert(Comment comment); // 插入评论记录@Delete("delete from t_comment where id = #{id}")int deleteById(Integer id); // 按标识符删除评论@Update("update t_comment set content = #{content}, author = #{author} where id = #{id}")int update(Comment comment); // 更新评论@Select("select * from t_comment where id = #{id}")Comment findById(Integer id); // 按标识符查询评论@Select("select * from t_comment")List<Comment> findAll(); // 查询全部评论
}

2、在测试类编写测试方法,测试评论映射器接口

在这里插入图片描述
在这里插入图片描述
(1)创建测试方法testFindById()
在这里插入图片描述
运行测试方法,查看结果
在这里插入图片描述
要避免这个警告信息,修改一下全局属性配置文件
在这里插入图片描述
再运行测试方法,查看结果
在这里插入图片描述
在这里插入图片描述
再运行测试方法,查看结果
在这里插入图片描述
在这里插入图片描述
(2)创建测试方法testFindAll()
在这里插入图片描述
运行测试方法,查看结果
在这里插入图片描述
(3)创建测试方法testInsertComment()
在这里插入图片描述
运行测试方法,查看结果
在这里插入图片描述
在Navicat里打开评论表,看是否成功地添加了一条新记录
在这里插入图片描述
(4)创建测试方法testUpdateComment()
修改刚才插入的第8条记录
在这里插入图片描述
运行测试方法,查看结果
在这里插入图片描述
(5)创建测试方法testDeleteComment()
删除刚才插入的第8条记录
在这里插入图片描述
运行测试方法,查看结果
在这里插入图片描述
在Navicat里查看评论表t_comment
在这里插入图片描述

(三)使用配置文件方式整合MyBatis

1、创建文章映射接口 - ArticleMapper

在这里插入图片描述

package net.hw.lesson06;import org.apache.ibatis.annotations.Mapper;/*** 功能:文章映射器接口* 作者:* 日期:*/
@Mapper
public interface ArticleMapper {Article findArticleById(Integer id);int updateArticle(Article article);
}

2、创建映射器配置文件 - ArticleMapper.xml

在resources目录里创建mapper目录,在mapper目录里创建ArticleMapper.xml
在这里插入图片描述

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="net.hw.lesson06.mapper.ArticleMapper"><!--按id查询记录,文章表与评论表关联查询--><select id="findArticleById" resultMap="articleWithComment">SELECT a.*, c.id c_id, c.content c_content, c.author, c.a_idFROM t_article a, t_comment cWHERE a.id = c.a_id AND a.id = #{id}</select><!--结果集,一篇文章对应多个评论构成的集合--><resultMap id="articleWithComment" type="Article"><id property="id" column="id"/><result property="title" column="title"/><result property="content" column="content"/><collection property="commentList" ofType="Comment"><id property="id" column="c_id"/><result property="content" column="c_content"/><result property="author" column="author"/><result property="aId" column="a_id"/></collection></resultMap><!--更新记录--><update id="updateArticle" parameterType="Article">UPDATE t_article<set><if test="title != null and title != ''">title = #{title},</if><if test="content != null and content != ''">content = #{content}</if></set>WHERE id = #{id}</update>
</mapper>

3、在全局配置文件里配置映射器配置文件路径、

在这里插入图片描述

4、在测试类编写测试方法,测试文章映射器

注入文章映射器
在这里插入图片描述

(1)创建测试方法testFindArticleById()
在这里插入图片描述
运行测试方法,查看结果
在这里插入图片描述
修改测试代码,再进行测试
在这里插入图片描述

(2)创建测试方法testUpdateArticle()
在这里插入图片描述
运行测试方法,查看结果
在这里插入图片描述


http://www.ppmy.cn/news/262964.html

相关文章

色调、色相、饱和度、对比度、亮度

对比度&#xff1a; 对比度指不同颜色之间的差别。对比度越大&#xff0c;不同颜色之间的反差越大&#xff0c;即所谓黑白分明&#xff0c;对比度过大&#xff0c;图像就会显得很刺眼。对比度越小&#xff0c;不同颜色之间的反差就越小。 亮度&#xff1a; 亮度指照射在景物或…

css 解决投影仪投影不清晰,投影仪不清晰要如何解决?

因为投影仪成像不是单方面因素决定的&#xff0c;所以并不是简单连接就会有清晰的画面投射出来&#xff0c;因此需要进行正确的指标设置。 方法一&#xff1a; 调节调焦环(一般在投影机镜头上方)&#xff0c;调整清晰度。 若调节调焦环后画面依旧模糊&#xff0c;则将视频源的视…

图像对比度增强(Contrast Enhancement)详解

Contrast Enhancement&#xff1a; 对比度增强一直是图像处理中的一个恒久话题&#xff0c;一般来说都是基于直方图的&#xff0c;比如直方图均衡化。冈萨雷斯的书里面对这个话题讲的比较透彻。 关于图像增强必须清楚的基本概念 1.图像增强的目的&#xff1a; 1&#xff09;改…

matlab 控制投影仪 正弦光栅,一种基于投影仪散焦解相位的光栅投影三维快速测量方法...

一种基于投影仪散焦解相位的光栅投影三维快速测量方法 【技术领域】 [0001] 本发明涉及三维信息重构领域,尤其是一种基于投影仪散焦解相位的光栅投影三 维快速测量方法。 【背景技术】 [0002] 光学三维测量技术能够准确获取物体的三维面形数据,可用于三维模型重建、物 体表面…

图像对比度增强和X投影数据矩阵转图像

图像对比度增强部分&#xff1a; 所谓的图像对比度增强&#xff0c;实际上就是对图像的像素矩阵进行修改&#xff0c;使得我们需要增强的部分强化、差异化&#xff0c;不需要增强的部分弱化、统一化。 常用的强化方法一般有(默认为8位图) 1.线性变换 当图像是线性模糊的时候&am…

色调、锐度、对比度、饱和度

色调 色调是指一幅作品色彩外观的基本倾向。 色调在冷暖方面分为暖色调与冷色调:红色、橙色、黄色–为暖色调&#xff0c;象征着:太阳、火焰。绿色、蓝色、黑色–为冷色调&#xff0c;象征着:森林、大海、蓝天。灰色、紫色、白色–为中间色调。 锐度 锐度越高越清晰 锐度&a…

MongoDB Study Notes

文章目录 1 MongoDB快速入门1.1 什么是MongDB1.2 部署安装——基于docker1.3 基本概念1.4 基本操作1.4.1 查看所有数据库1.4.2 切换数据库1.4.3 创建数据库1.4.4 删除数据库1.4.5 查看数据库中表1.4.6 新增数据1.4.7 查询数据1.4.8 更新数据1.4.8.1 更新不存在字段1.4.8.2 更新…

win10的另一种美化字体的方式,使用noMeiryoUI

目录 1. 前提2. 字体选择3. 查看已经安装的字体并查看效果4. 安装软件修改系统字体5. 修改浏览器字体 1. 前提 21年的时候写了一篇文章&#xff0c;《Windows10下美化字体&#xff0c;达到类似mac的效果》&#xff0c;当时还很迷恋macType这个软件的使用&#xff0c;觉得好牛逼…

x265的DCT

文章目录 DCT相关背景知识DCT变换系数矩阵32x32变换矩阵系数其他尺寸变换矩阵系数 变换计算过程流程图 代码实现数据残差变换系数对应残差 我的简单实现实现细节实现代码 x265对应代码实现openHEVC代码实现 DCT相关背景知识 DCT变换系数矩阵 标准提供了32x32的系数矩阵&#…

环保数采仪环境污染在线监控设备 上传监控平台

1. 概述 AF-HK100 环保数采仪是应环保领域各级国控、省控及市控污染源环境在线监控&#xff08;监测&#xff09;系统的需求而开发研制的产品&#xff0c;通过模拟通道、开关通道、数字通道&#xff08;RS232/485/LoRa&#xff09;与前端各类监测仪器/仪表实现无缝连接&#xf…

网络设备监控

原文网址:http://knowhow.innovatedigital.com/network-device-monitoring.html 网络设备包括交换机&#xff0c;路由器和防火墙是任何IT环境的重要组成部分。HQ深覆盖面的操作系统和支持SNMP为基础的应用管理&#xff0c;可以监控代理管理的网络设备&#xff0c;如思科系统&a…

室内监控摄像机能做什么?安装在室内有哪些好处?

室内监控摄像机能做什么&#xff1f;安装在室内&#xff0c;主要是用于办公室&#xff0c;家庭&#xff0c;商铺&#xff0c;工厂以及仓库等。监控什么&#xff1f;监控小孩老人的动态&#xff0c;查看保姆的做事态度&#xff0c;查看家里宠物的生活习性。喜欢在凉台养植物的&a…

云呐|机房监控服务平台,机房监控服务平台有哪些

机房动环监控平台提供平台、万级站点连接能力、电源、电池、油机、空调、烟雾、浸水、门禁、温湿度、视频等智能终端统一连接&#xff0c;提供集中运维监控能力。根据大规模运维管理&#xff0c;积累大量运维数据&#xff0c;降低运维费用&#xff0c;提高运维水平。动环采集一…

安防视频监控直播的画面都是如何采集的?

我们公司这几天在做摄像头对接流媒体服务器推流的测试&#xff0c;突然想起来我好像还没有就直播画面的采集写过什么&#xff0c;所以今天我就来讲一下采集。采集是整个视频推流过程中的第一个环节&#xff0c;它从系统的采集设备中获取原始视频数据&#xff0c;将其输出到下一…

安防监控如何存储?

安防监控是有多个部位组成&#xff0c;比如是需要摄像机、录像机、显示器、交换机等工具。接受录像以后再上传到安防监控系统&#xff0c;并从摄像到图像显示和记录构成独立完整的系统。每年无论是大型的机房监控还是安防监控的视频存储是一大问题。 面对云视频存储的性能、安全…

机械设备远程实时监控方案

摘要&#xff1a;伴随着我国市场经济的不断发展&#xff0c;目前机械设备的使用范围越来越广泛。但是&#xff0c;由于机械设备使用时不容易管理&#xff0c;并且比较分散&#xff0c;同时也存在长期使用的一些机械设备逐渐老化以及操作工在使用机械设备时操作不当而引起设备的…

家用小型监控器安装位置与功能

家用小型监控器安装的位置可选性很多&#xff0c;比如壁橱&#xff0c;酒柜&#xff0c;书架等&#xff0c;这些易于隐藏又不会被注意的角落正是家用小型监控器发挥作用的位置。为什么家用摄像机的体积越来越小&#xff0c;而且功能却越来越强大呢。从速名网的数据可以看出&…

监控产品

海康解码器 主动解码 又称动态解码&#xff0c;由解码器主动连接编码器请求数据流&#xff0c;常见应用&#xff1a;解码上墙&#xff0c;远程录像回放上墙&#xff0c;轮巡解码。 被动解码 解码器不会发起请求,其他设备向解码器上传数据&#xff0c;解码器只有接到数据…

数据监控平台

数据监控平台 监控平台需要实时监控业务指标数据&#xff0c;系统特点&#xff1a;高并发&#xff0c;大数据&#xff0c;低延迟。主要使用的技术&#xff1a; HBase存储海量数据&#xff0c;ScriptEngine引擎&#xff0c;MySQL分表&#xff0c;Redis集群。 高并发&#xf…

监控器材产品如何做好软文?

软文是一种有效的市场宣传手段&#xff0c;是宣传形式之一&#xff0c;是一种以自然、温和的方式来宣传商品、服务的手段。在当前市场竞争激烈的情况下&#xff0c;软文的重要性越来越凸显&#xff0c;是监控器材产品引流宣传的有效手段。可以有效地扩大产品影响力&#xff0c;…