MyBatis与MySql关系阐述

MyBatis是一个持久层(persistence layer)框架,用于简化Java应用程序与关系数据库(如MySQL)的交互。它通过消除大量冗余的JDBC代码,并提供了一个简单且易于使用的API,使得开发者可以更高效地进行数据库操作。以下是MyBatis与MySQL之间的关系和它们如何协同工作的详细说明:

MyBatis的基本概念

  1. SQL映射:MyBatis允许开发者在XML文件或注解中定义SQL查询、插入、更新和删除语句。这些SQL语句与Java对象之间的映射关系由MyBatis管理。

  2. 持久层框架:MyBatis负责管理Java应用程序中的持久层代码,简化了与数据库的交互过程。开发者可以专注于编写SQL,而不是处理繁琐的JDBC代码。

  3. 自动映射:MyBatis可以自动将数据库查询结果映射到Java对象,极大地简化了数据转换的过程。

MyBatis与MySQL的关系

  1. 数据源配置:在MyBatis中,开发者需要配置数据源(DataSource)以连接到MySQL数据库。数据源配置通常包括数据库URL、用户名、密码等信息。

  2. SQL映射文件:开发者可以在MyBatis的XML映射文件中定义SQL语句,这些SQL语句将被发送到MySQL数据库进行执行。例如:

    <select id="selectUser" resultType="User">SELECT id, username, password FROM users WHERE id = #{id}
    </select>
    
  3. MyBatis会话:通过MyBatis会话(SqlSession),开发者可以执行预定义的SQL语句并处理结果集。会话的管理由MyBatis提供的API负责。

  4. 对象映射:MyBatis将从MySQL数据库中检索到的结果集自动映射到Java对象中,使得数据处理变得更加简洁和直观。

SpringBoot如何使用MyBatis与MySQL进行集成

1. 安装和运行MySQL

安装MySQL

如果您的系统中还没有安装MySQL,可以根据您的操作系统选择以下命令来安装:

对于MacOS:

brew install mysql

对于Windows: 可以从MySQL官网下载MySQL安装程序进行安装。

启动MySQL服务

安装完成后,确保MySQL服务正在运行:

MacOS:

brew services start mysql

Windows: 通过“服务”应用程序启动MySQL服务,或者在命令提示符中运行:

net start mysql
登录MySQL并创建数据库
  1. 使用默认用户登录MySQL:

    mysql -u root -p

    初始密码为空,直接按回车

出现如下提示说明登录成功:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 24

Server version: 8.3.0 Homebrew

登录成功后建议修改密码,如果返回Query OK, 0 rows affected (0.01 sec)
,表示修改成功:

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'
  1. 创建一个新的数据库:

    CREATE DATABASE blog_test;
  2. 查看所有数据库

show databases;

      3、使用指定数据库

USE blog_test;

   4、上述数据库下创建表,user_name和password两个字段

CREATE TABLE user (id INT AUTO_INCREMENT PRIMARY KEY,user_name VARCHAR(255) NOT NULL,password VARCHAR(255) NOT NULL
);

2. 配置Spring Boot项目连接MySQL

确保在您的Spring Boot项目中添加了MySQL依赖。在pom.xml中添加以下内容:

<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency>
</dependencies>

3. 配置application.ymlapplication.properties

src/main/resources目录下创建或编辑application.ymlapplication.properties文件,配置数据库连接信息:

使用application.yml文件:

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/blog_test?useSSL=false&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&maxReconnects=10username: root # 或者您创建的用户password: 123456 # 或者您创建的用户密码hikari:maximum-pool-size: 10max-lifetime: 1770000mybatis:type-aliases-package: com.clw.lesson02.entityconfiguration:map-underscore-to-camel-case: truemapper-locations:- classpath:mapper/*.xml

使用application.properties文件:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/blog_test?useSSL=false&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&maxReconnects=10
spring.datasource.username=root # 或者您创建的用户
spring.datasource.password=123456 # 或者您创建的用户密码
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.max-lifetime=1770000mybatis.type-aliases-package=com.clw.lesson02.entity
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.mapper-locations=classpath:mapper/*.xml

我真是服了这个垃圾编辑器了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/852826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pytest+requests+allure自动化测试接入Jenkins学习

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 最近在这整理知识&#xff0c;发现在pytest的知识文档缺少系统性&#xff0c;这里整理一下&…

black-box setting黑盒环境

“Black-box setting” 是一个术语&#xff0c;通常用于描述在机器学习、计算机安全和其他技术领域中的一种情况或设置。 定义和解释&#xff1a; 在技术和研究上&#xff0c;“black-box setting” 指的是对一个系统或模型的操作者来说&#xff0c;该系统或模型的内部工作机…

陕西移动联合中兴通讯,赋能5G RedCap智慧工厂建设

前不久&#xff0c;陕西移动联合中兴通讯、高新兴等产业伙伴在中兴通讯西安智能终端生产基地顺利完成5G RedCap在智慧工厂的应用实践。本次实践证明了5G RedCap在智慧工厂场景下的应用可行性&#xff0c;为RedCap在工业智能制造行业的应用打下基础。   5G RedCap技术是5G-A实现…

【cocos creator 3.x】 修改builtin-unlit 加了一个类似流光显示的mask参数

效果见图&#xff1a; shader 代码修改如下&#xff0c; 主要看 USE_MASK_UVY 关键字部分修改&#xff1a; // Copyright (c) 2017-2020 Xiamen Yaji Software Co., Ltd. CCEffect %{techniques:- name: opaquepasses:- vert: unlit-vs:vertfrag: unlit-fs:fragproperties: &a…

在Android Studio中将某个文件移出Git版本管理

最新在整理代码时发现&#xff0c;local.properties文件开头有这么一段注释&#xff1a; ## This file must *NOT* be checked into Version Control Systems, # as it contains information specific to your local configuration. 大意是这个文件不要加入到版本管理中。 之…

Linux-centos7 nvm使用

NVM下载使用 文件夹创建拉取nvm包在~/.bashrc的末尾&#xff0c;添加如下语句验证nvm是否安装成功 文件夹创建 mkdir /root/home/software/拉取nvm包 cd /root/home/software/ wget https://github.com/nvm-sh/nvm/archive/refs/tags/v0.38.0.tar.gz tar xvzf v0.38.0.tar.g…

MyBatis-Plus整合达梦数据库

文章目录 1. 环境准备2. 创建Spring Boot项目3. 引入依赖4. 配置数据源5. 配置MyBatis-Plus6. 创建实体类7. 创建Mapper接口8. 创建Service类9. 创建Controller类10. 创建Mapper XML文件11. 测试12. 进一步优化12.1 配置分页插件12.2 配置乐观锁插件13. 总结🎉欢迎来到Java学…

【Linux】常见指令的使用

文章目录 which指令stat 指令wc指令echo指令tree 指令whoami指令clear指令alias指令ls指令pwd指令cd 指令touch指令mkdir指令&#xff08;重要&#xff09;rmdir指令 && rm 指令&#xff08;重要&#xff09;man指令&#xff08;重要&#xff09;cp指令&#xff08;重要…

Java课程设计:基于swing的贪吃蛇小游戏

文章目录 一、项目介绍二、核心代码三、项目展示四、源码获取 一、项目介绍 贪吃蛇是一款经典的休闲益智游戏,自问世以来便深受广大用户的喜爱。这个游戏的基本玩法是控制一条不断增长的蛇,目标是吃掉屏幕上出现的食物,同时避免撞到边缘或自身。随着游戏的进行,蛇的身体会越长…

使用Task容易造成程序卡顿

Task虽然方便&#xff0c;据说在多核处理器中有利于提高程序性能。但是使用过程中总是出现莫名奇妙的卡顿&#xff0c;特别是计算机性能不高的时候。多个task偶尔会出现卡顿比较长的时间&#xff0c;才开始执行。不像thread可以立马开始执行。已经在两个项目中遇到类似问题&…

Burp Suite使用及BruteForc_test靶场实战

简介 Burp Suite是用于攻击和测试Web应用程序安全性的集成平台&#xff0c;包含多个协同工作的工具&#xff0c;支持信息共享与复杂攻击。设计有加速攻击流程的接口&#xff0c;所有工具共享强大框架&#xff0c;处理HTTP消息、持久性、认证、代理、日志和警报。主要用于安全性…

grpc代理服务的实现(一)

最近公司需要无感知基于服务代号来实现通信, 并监控和管理通信连接&#xff0c;目前公司使用的是如下的逻辑(当然逻辑简化了&#xff0c;但是思想不变) 目录 简单的原理图代理服务的实现创建 tls tcp 服务, 用于grpc client 和 grpc service 通信保存 与 代理服务建立的 grpc …

Codeforces Round 926 (Div. 2)(A~C题解)

A题是个签到题&#xff0c;BC思维题目&#xff0c;搞出来结论就秒了&#xff0c;D题是个树上DP由于现在水平薄弱还没做出来&#xff0c;以后补上 A. Sasha and the Beautiful Array 思路给数组排序&#xff0c;然后后项减前项&#xff0c;累加值就是最终结果&#xff0c;签到题…

AI 大模型的赛点:通用与垂直之争

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

短视频矩阵源码---矩阵托管1000个账号如何正规开发规则实现

一、短视频矩阵源码开发实现规则&#xff1a; 1.首先是确保各个官方平台api接口的稳定性&#xff0c;一定要是各个平台正规的api 2.其次是保证服务器运行&#xff0c;带宽保证能够并行&#xff0c;目前我们这边用的是源码所需服务器配置&#xff1a;规格:最低8核16G2、硬盘:系…

GIS之arcgis系列10:arcpy实现批量掩膜提取

按掩膜提取 (Spatial Analyst) 提取掩膜所定义区域内的相应栅格像元。 OutRas ExtractByMask(InRas1, InMsk1, "INSIDE") 使用情况 输入栅格中的其他属性&#xff08;若有的话&#xff09;将按照原样添加到输出栅格属性表。 根据所记录的属性&#xff0c;某些属性…

【NLP练习】Transformer中的位置编码

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、什么是位置编码 1. 位置编码定义 Transformer 模型中的位置编码是为了在处理序列数据时引入位置信息&#xff0c;以便模型能够分辨输入序列中不同位置的词…

【python】正则匹配国内手机号

下面是将您提供的Java代码段翻译成Python的等效代码&#xff1a; import re def is_valid_phone_number(phone_number):regex "^1[3-9]\d{9}$"return bool(re.match(regex, phone_number))这段Python代码定义了一个函数is_valid_phone_number&#xff0c;它接受一个…

蓝卓为中小制造企业注入数字化转型活力

随着劳动力成本上升,原材料价格上涨,企业生产成本逐年增加&#xff0c;市场竞争越来越激烈&#xff0c;传统的中小制造企业面临着巨大的压力。 通过数字化转型应对环境的变化已成为行业共识&#xff0c;在数字化的进程中&#xff0c;中小企业首要考虑生存问题&#xff0c;不能…

spring boot 多个项目整合,打包成可依赖的包

一、背景介绍 接手前人项目&#xff0c;代码都是一块一块的&#xff0c;很多个spring boot服务&#xff0c;服务器重新启动一下&#xff0c;就要同时再启动很多jar服务&#xff0c;漏一个就麻烦了&#xff08;虽然有一键启动&#xff09;。但是有很多终端黑框很是麻烦。领导要…