后端学习笔记(4)--MyBatis

news2024/11/20 9:35:53

1.MyBatis

​ *MyBatis是一款优秀的持久层框架,用于简化JDBC开发

*持久层

​ *负责将数据保存到数据库的那一层代码

​ *JavaEE三层架构:表现层、业务层、持久层

*框架

​ *框架是一个半成品软件,是一套可重用的、通用的、软件基础代码模型

​ *在框架的基础之上构建软件编写更加高效、规范、通用、可扩展

在这里插入图片描述

1.查询user表中所有数据

​ 1.创建user表,添加数据

​ 2.创建模块,导入坐标

​ 3.编写MyBatis核心配置文件 --> 替换连接信息 解决硬编码问题

​ 4.编写SQL映射文件 --> 同意管理sql语句,解决硬编码问题

​ 5.编码

​ 1.定义POJO类

​ 2.加载核心配置文件,获取SqlSessionFactory对象

​ 3.获取SqlSession对象,执行SQL语句

​ 4.释放资源

2.解决SQL语句警告提示

在这里插入图片描述

3.Mapper代理开发

​ *目的:

1.解决原生方式中的硬编码

2.简化后期执行SQL

//执行sql
List<User> users = sqlSession.selectList("test.selectAll");
System.out.println(users);
//获取接口代理对象
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
//执行方法
List<User> users = userMapper.selectAll();

​ *步骤:

1.定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下

2.设置SQL映射文件的namespace属性为Mapper接口全限定名

3.在Mapper接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致

4.编码

​ 1.通过SqlSession的getMapper方法获取Mapper接口的代理对象

​ 2.调用对应方法完成sql的执行

​ *细节:

​ 如果Mapper接口名称和SQL映射文件名称相同,并在同一目录下,则可以使用包扫描的方式简化SQL映射文件的加载

<mappers>
    <!--加载sql的映射文件-->
    <package name = "com.itheima.mapper"/>
</mappers>

4.MyBatis核心配置文件

​ *mybatis-config.xml

​ *配置时要遵循顺序

1.properties(属性)

2.settings(设置)

3.typeAliases(类型别名)

<typeAliases>
    <package name="com.itheima.pojo"/>
</typeAliases>

4.typeHandlers(类型处理器)

5.objectFactory(对象工厂)

6.plugins(插件)

7.environment(环境配置):配置数据库连接环境信息,可以配置多个environment,通过defualt属性切换不同的environment

8.databasldProvider(数据库厂商标识)

9.mappers(映射器)

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

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

相关文章

52 break 与 continue 语句

break 与 continue 语句在 while 循环和 for 循环中都可以使用&#xff0c;并且一般常与选择结构或异常处理结构结合使用。 ① 一旦 break 语句被执行&#xff0c;将使得 break 语句所属层次的循环提前结束。 ② continue 语句的作用是提前结束本次循环&#xff0c;忽略 contin…

量产部落RTS5765DL量产工具,RTS5765DL+三星SSV6顺利开卡,假金士顿固态完美修复,RTS5765、RTS5766固件量产教程

朋友电脑开不了机&#xff0c;判断是硬盘坏了&#xff0c;从上面拆下来一个1TB的金士顿固态盘。 居然用的是RTS5765DL主控三星SSV6颗粒&#xff0c;100%假货了&#xff0c;看来只能用开卡软件来修复。 开卡前必须准备一个开卡转接板&#xff0c;方便固态硬盘通过USB连接电脑&am…

Nginx解析漏洞~CVE-2013-4547漏洞分析

Nginx解析漏洞 这个解析漏洞其实是PHP CGI的漏洞&#xff0c;在PHP的配置文件中有一个关键的选项cgi.fix_pathinfo默认是开启的&#xff0c;当URL中有不存在的文件&#xff0c;PHP就会向前递归解析。在一个文件/xx.jpg后面加上/.php会将 /xx.jpg/xx.php 解析为 php 文件。 CVE-…

实验4-1-7 特殊a串数列求和

//实验4-1-7 特殊a串数列求和/* 给定两个均不超过9的正整数a和n&#xff0c;要求编写程序求aaaaaa⋯aa⋯a&#xff08;n个a&#xff09;之和。 输入格式&#xff1a;输入在一行中给出不超过9的正整数a和n。 输出格式&#xff1a;在一行中按照“s 对应的和”的格式输出。 */#in…

Stegdetect教程:如何用Stegdetect检测和破解JPG图像隐写信息

一、Stegdetect简介 Stegdetect 是一个开源工具&#xff0c;专门设计用于检测图像文件&#xff08;JPG格式&#xff09;中的隐写信息。Stegdetect 可以检测多种常见的隐写方法&#xff0c;比如 JSteg、JPHide 和 OutGuess 等。 二、使用Stegdetect检测图像隐写 官方描述&#…

javaI/O|day2. javaI/O模型、 具体I/O流程、 具体模型

文章目录 javaI/O模型定义具体I/O流程图示过程讲解 具体模型I/O调用两个阶段同异步阻塞非阻塞BIO(同步并阻塞)NIO(同步非阻塞)AIO(异步非阻塞) javaI/O模型 定义 用什么样的通道或者通信模式和架构进行数据的传输和接收,很大程度上决定了程序的性能 具体I/O流程 图示 过程 …

36k Star的开源大模型应用开发平台,太强了!

引言 Dify是一款开源的大语言模型&#xff08;LLM&#xff09;应用开发平台&#xff0c;它帮助开发者和非技术人员&#xff0c;快速构建生产级别的生成式AI应用。 该项目设立于2023 年 3 月&#xff0c;开源协议是基于 Apache License 2.0 有限商业许可&#xff0c;后端技术P…

nginx自动续期ssl证书

&#x1f534; 大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。 &#x1f534;前言 前年&#xff0c;阿里将免费的ssl证书从一年调整成了三个月&#xff1b; 去年&#xff0c;腾讯将免费的ssl证书从一年调整成了三个月&#xff1b; 以…

【文献阅读】Balancing the Scales: HyperSMOTE for Enhanced Hypergraph Classification

Abstract 真实用户与机器人数量之间的固有不平衡带来了巨大的挑战&#xff0c;常常导致分类器的偏差。本文引入了HyperSMOTE&#xff0c;这是一种利用超图丰富结构的不平衡节点分类的新方法。通过将X平台用户表示为节点&#xff0c;并将他们的互动表示为超边&#xff0c;构建了…

给水排水杂志

一、基本信息 《给水排水》创刊于1964年&#xff0c;是国内创刊早、发行量大、内容涵盖广的水行业权威期刊&#xff0c;在业内享有盛誉。期刊现由中国建设集团股份有限公司主管&#xff0c;亚太建设科技信息研究院有限公司、中国土木工程学会主办。现任名誉主编&#xff1a…

【Java】深度解析Java的反射机制

反射&#xff08;Reflection&#xff09; 一、 反射的基本概念二、 获取类的信息三、 获取类的成员四、 动态创建对象五、 动态调用方法六、 动态访问和修改字段 总结 一、 反射的基本概念 反射是一种运行时机制&#xff0c;允许程序在运行时检查和操作类、方法、字段等。通过…

告别异地烦恼,这四款远程控制工具一键掌控千里之外的电脑!

现在的科技水平真是越来越强大了&#xff0c;以前都是必须要在电脑跟前才可以解决的问题&#xff0c;现在可以安装通过远程控制的软件来实现在家就可以办公&#xff0c;解决了这当中的时间和金钱成本&#xff0c;所以今天就具体来聊聊四款好用的远程控制工具&#xff0c;协助我…

学python的第一天:PyCharm创建项目

创建项目 打开工具 PyCharm 点击“新建项目” 点击“创建” 环境 系统会创建虚拟环境&#xff0c;稍等 初始设置 创建完成后会进入main.py文件 性能 可以看到 右下角提示我们增强性能&#xff0c;点“自动” 会获取到管理员权限 完成后会提示完成

CAS单点登录

1.相同顶级域名的单点登录SSO 相同顶级域名的单点登录:SSO:SINGLE SIGN ON 单点登录可以通过基于用户会话的共享&#xff1b;分为两种&#xff0c;第一种&#xff1a;相同顶级域名&#xff1b; 原理是分布式会话完成的&#xff1b;关键是顶级域名的cookie值是可以共享的 比如…

7月小游戏畅销榜Top 100:MMO游戏数量增多,26款新入榜

易采游戏网8月4日消息&#xff1a;2024年7月的小游戏畅销榜Top100已经揭晓&#xff0c;给广大游戏玩家带来了不少惊喜和期待。与上个月相比&#xff0c;本月的榜单不仅新入榜游戏数量达到了26款&#xff0c;还显示了MMO&#xff08;大型多人在线&#xff09;游戏的强劲增长趋势…

deform,一个超强的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超强的 Python 库 - deform。 Github地址&#xff1a;https://github.com/Pylons/deform 在 Web 开发中&#xff0c;表单处理是一个常见且重要的任务。deform 是一个用于生…

巧用casaos共享挂载自己的外接硬盘为局域网共享

最近入手了个魔改机顶盒,已经刷好了的armbian,虽然是原生的,但是我觉得挺强大的,内置了很多 常用的docker和应用,只需要armbian-software 安装就行,缺点就是emmc太小了。 买到之后第一时间装上了casaos和1panel,想把外接移动硬盘挂载到局域网,只需: 1、安装必要的sam…

Parallels Desktop19让你的Mac无缝运行Windows!

大家好&#xff0c;我是你们的科技小伙伴&#xff0c;今天我要给大家安利一款神奇的软件——Parallels Desktop 19虚拟机。这款产品真的是让我眼前一亮&#xff0c;用起来简直不能更爽&#xff01; 让我们来聊聊为什么我们需要一个虚拟机。 想象一下&#xff0c;你是一个Mac用…

牛顿插值法代替泰勒公式

引入 例题 近似函数&#xff1a; 通过这个近似函数可以看出&#xff0c;若要证的函数超过二阶可导&#xff0c;那么就不适合用牛顿插值法代替泰勒公式 因为&#xff0c;后面的操作非常复杂&#xff0c;不划算了… 总结 我们可以通过牛顿插值法生成一个逼近曲线的直线&#xf…

贷款申请被拒,是银行故意在找茬吗?

贷款申请被拒&#xff0c;很多时候真不是银行故意找茬&#xff0c;而是咱们自己的一些“小动作”不经意间就把路给堵窄了。今天&#xff0c;咱们就来聊聊那些可能让贷款之路变得坎坷的“坑”&#xff0c;帮你顺利绕开它们。 首先&#xff0c;得说说那个最让人头疼的——逾期还款…