当前位置: 首页 > news >正文

day37-框架

0目录

框架

1.框架介绍

2. SSM三大框架简介

3.Mybatis

4.拓展

1.框架介绍

1.1  为什么使用框架?

(1)框架效率高,成本低

(2)框架是别人写好的构建,我们只需学会如何使用它(可维护性高)

(3)框架是基于MVC的思想(web层独有的思想)的拓展而开发的,兼容性极高

(4)框架包含有MVC思想中的所有组成模块:控制层、模型层、视图层

(5)拓展:Spring,Mybatis,SpringMVC框架集合中:

Spring的位置:业务层(模型层)

SpringMVC的位置:控制层/模型层/视图层

Mybatis的位置:持久层(模型层)

2.SSM三大框架简介

2.1  Spring框架:

(1)AOP:控制反转;IOC:面相切面

(2)实现MVC中的业务层模块(service层)

2.2  SpringMVC框架:

(1)基于MVC思想的Web框架

(2)实现MVC思想中的控制层(controller)、模型层(entity,dao,service)、视图层(jsp)

2.3  Mybatis框架:

(1)半自动ORM框架

拓展1:ORM:对象:java对象   关系    映射:xml)

拓展2:Mybatis是半自动的,Hibernate是全自动

拓展3:Mybatis和Hibernate框架的区别是Mybatis是灵活的可以手工维护的框架,而Hibernate是高度封装的框架,无法灵活变动(很多复杂的功能模块无法实现)

(2)实现MVC思想中的持久层(模型层)

3.Mybatis

3.1  核心对象:

SqlSessionFactoryBuilder

SqlSessionFactory

SqlSession:Mybatis应用的核心

3.2  核心配置文件:xml

核心要点:搭建Mybatis环境必备的配置文件

3.3  映射文件:UserMapper.xml

3.4  Mybatis实战

(1)创建Maven工程,创建包,导入依赖

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.1</version>
</dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.36</version>
</dependency>

(2)mapper中的PersonMapper接口

(3)PersonMapper映射(resultType返回值)

(4)mybatis-config配置文件:注意mappers中的路径格式

(5)TestMybatis测试

3.5  改造实现添加

(1)接口中添加方法

(2)添加无返回值,但是有参数,parameterType为参数及实体类路径

(3)添加有事务,需要手动提交

3.6  实现删除

3.7  实现修改

3.8  实现查询所有

3.9  实现查询单条数据

3.10  实现模糊查询

3.11  日志

代码:

<!--setttings:控制mybatis全局配置行为-->
<settings>
    <!--设置mybatis输出日志-->
    <setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>

运行测试后,控制台会生成日志:

3.12  工具类MybatisUtil

实现所有功能:

4.拓展

4.1 拓展:$用法

(1)方法中参数加入注解@Param("colName"),表示识别xml中对应的${}

(2)使用注解后,不需要加入参数parameterType

4.2  拓展properties:将连接数据库驱动文件封装在resources中,在config文件中使用

相关文章:

day37-框架

0目录 框架 1.框架介绍 2. SSM三大框架简介 3.Mybatis 4.拓展 1.框架介绍 1.1 为什么使用框架&#xff1f; &#xff08;1&#xff09;框架效率高&#xff0c;成本低 &#xff08;2&#xff09;框架是别人写好的构建&#xff0c;我们只需学会如何使用它&#xff08;可维护性…...

基于STM32单片机的智能家居烟雾温度火灾防盗报警的设计与实现

功能介绍 以STM32单片机作为主控系统&#xff1b;LCD1602液晶显示屏来显示显示测得的值&#xff1b;SR501人体红外感应是否有人进行防盗&#xff1b;通过烟雾传感器MQ-2获取前的烟雾值&#xff1b;通过DHT11温湿度传感器来获取当前的温湿度&#xff1b;所有的信息通过通过esp82…...

jenkins 采用ssh方式连接gitlab连接不上

一、gitlab 添加jenkins服务器的公钥 jenkins 生成秘钥命令 ssh-keygen -t rsa2.jenkins 秘钥地址&#xff1a; cd /root/.ssh3.复制公钥 到gitlab 添加 cat id_rsa_pub4.添加私钥到jenkins cat id_rsa5.绑定&#xff08;顺利的话到这里就结束了&#xff09; &#xff0…...

前缀和模板算法

一)模板前缀和 【模板】前缀和_牛客题霸_牛客网 (nowcoder.com) 前缀和:快速的得出数组中某一段连续区间的和 暴力破解的话需要从头到尾的进行遍历&#xff0c;时间复杂度就可以达到O(N)&#xff0c;而前缀和时间复杂度是可以达到O(1)的 第一步:预处理创建出一个前缀和数组dp&a…...

SpringBoot 启动输出 Git 版本信息(2023/07/11)

SpringBoot 启动输出 Git 版本信息 文章目录 SpringBoot 启动输出 Git 版本信息1. 环境依赖2. pom.xml 配置3. 启动类配置 为了方便记录项目打包时的 Git 版本&#xff0c;本文将介绍如何将 Git 版本信息打包进 JAR 文件&#xff0c;并在项目启动时输出。 1. 环境依赖 SpringB…...

SSH客户端连接远程服务器

目录 一、什么是客户端连接远程服务器 二、什么是服务端连接远程服务器 三、查看网络信息 1、图形程序查看网络信息 2、命令查看网络信息 四、SSH客户端&#xff08;Linux&#xff09; 五、SSH客户端&#xff08;windows&#xff09; 六、SSH远程服务器 一、什么是客户…...

“深入理解Redis:高性能缓存与数据存储的秘密“

标题&#xff1a;深入理解Redis&#xff1a;高性能缓存与数据存储的秘密 在现代应用程序的开发中&#xff0c;缓存和数据存储是非常重要的组成部分。它们不仅可以提高应用程序的性能&#xff0c;还可以减轻数据库和网络的负载。其中&#xff0c;Redis作为一种高性能的内存数据存…...

【论文阅读笔记】Attack-Resistant Federated Learning with Residual-based Reweighting

个人阅读笔记&#xff0c;如有错误欢迎指出 Arxiv 2019 [1912.11464] Attack-Resistant Federated Learning with Residual-based Reweighting (arxiv.org) 问题&#xff1a; 联邦学习容易受到后门攻击 创新&#xff1a; 提出一种基于残差的重新加权聚合算法 聚合算法…...

DevOps B站学习版(二)

学习地址&#xff1a; 01.DevOps的诞生_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Pt4y1H7Zq/?p1&vd_source1f09c23f556b3d6a9b7706f8db12fa54%E3%80%81 正文开始 找到这个地方&#xff0c;修改 可以写成基于标签拉取和构建工程&#xff0c;下面也选择Tag即可…...

MySQL(一)基本架构、SQL语句操作、试图

MySQL系列文章 MySQL&#xff08;一&#xff09;基本架构、SQL语句操作、试图 MySQL&#xff08;二&#xff09;索引原理以及优化 MySQL&#xff08;三&#xff09;SQL优化、Buffer pool、Change buffer MySQL&#xff08;四&#xff09;事务原理及分析 MySQL&#xff08;五&a…...

MySQL事务基础知识

文章目录 一、事务简介二、事务操作1.查看事务提交方式2.设置事务提交方式3.开启事务4.提交事务5.回滚事务 三、事务四大特性ACID四、并发事务的问题五、并发事务隔离级别六、代码实例1.脏读实例2.不可重复读实例3.幻读的实例4.串行化的实现 一、事务简介 事务是一组操作的集合…...

form表单禁止浏览器自动填充密码

因为用户修改密码的时候,谷歌浏览器、edge等浏览器,总是自动将保存的密码填充到重置密码输入框中,给用户使用带来困扰。原因是因为你在登录的时候选择记住了账号和密码了,所以就会把信息存在浏览器里面,当你在修改密码的时候,由于form表单的 type="password" 所…...

ios oc button 设置

Button调整内部的子控件的位置...

山西电力市场日前价格预测【2023-07-17】

日前价格预测 预测明日&#xff08;2023-07-17&#xff09;山西电力市场全天平均日前电价为335.50元/MWh。其中&#xff0c;最高日前电价为377.51元/MWh&#xff0c;预计出现在06: 00。最低日前电价为271.94元/MWh&#xff0c;预计出现在13: 30。 价差方向预测 1&#xff1a;实…...

vue3功能实现

在vue2中&#xff0c;要实现一些方法&#xff08;增删改查&#xff09;一般都是写在一起的。如下图所示&#xff1a; 但是在vue3中&#xff0c;实现一个方法需要用到很多文件。 方法定义方法如下&#xff1a; export function classSign(phone: string) {return sign_reques…...

微服务系列文章 之 SpringCloud中遇到的一些bug

1、There was a problem with the instance info replicator 错误原因&#xff1a; 该服务尝试将自己作为客服端注册解决办法&#xff1a; 在application.yml配置文件中&#xff0c;设置 # 注册Eureka服务 eureka:client:# Eureka服务注册中心会将自己作为客户端来尝试注册它自…...

Linux——权限

目录 1.Shell运行原理——外壳程序 2.权限 2.1对人操作 2.2对角色和文件操作 3.常见权限问题 1.Shell运行原理——外壳程序 首先我们要明确一个概念&#xff0c;我们不是直接访问操作系统。为什么&#xff1f; 对于Windows我们是使用GUI进行操作&#xff0c;Shell对于Li…...

[英语单词] components;

*[kәm’pәunәnt] n. 元件, 组件, 成分 a. 组成的, 构成的 【计】 组件 【化】 组分 【医】 成分; 组元(神经元组) 有很多地方使用这个单词&#xff0c;在组成整体时&#xff0c;作为单位一内的占有比率。那为什么不用portion&#xff1f; 这样每一个组成部分都是一个compon…...

【观察者模式】 ——每天一点小知识

&#x1f4a7; 观察者模式 \color{#FF1493}{观察者模式} 观察者模式&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主页——微风撞见云的博客&#x1f390; &#x1f433; 《数据结构与算法》专栏的文章图文并茂&#x1f995;…...

el-ment ui 表格组件table实现列的动态插入功能

在实际需求中我们经常遇到各种奇葩的需求&#xff0c;不足为奇。每个项目的需求各不相同&#xff0c;实现功能的思路大致是一样的。 本文来具体介绍怎么实现table表格动态插入几列。 首先实现思路有2种&#xff0c; 1. 插入的位置如果是已知的&#xff0c;我知道在哪个标题的…...

Python 算法详解:从原理到实践

Python 算法详解&#xff1a;从原理到实践 1. 背景与动机 算法是计算机科学的核心&#xff0c;它是解决问题的步骤和方法。Python 作为一种功能强大的编程语言&#xff0c;提供了丰富的工具和库来实现各种算法。掌握 Python 算法不仅可以提高程序的效率&#xff0c;还可以培养解…...

树莓派无头模式终极指南:不接显示器,用SSH+VNC搞定所有开发调试

树莓派无头模式终极指南&#xff1a;不接显示器&#xff0c;用SSHVNC搞定所有开发调试 当你把树莓派塞进机器人底盘、挂在墙上作为智能家居中枢&#xff0c;或是藏在机柜里充当服务器时&#xff0c;最不想看到的就是拖着一堆显示器和线材。作为嵌入式开发老手&#xff0c;我经历…...

老旧设备系统升级技术解析:4步实战指南让旧Mac焕发新生

老旧设备系统升级技术解析&#xff1a;4步实战指南让旧Mac焕发新生 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 老旧Mac设备升级macOS系统是许多用户面临的技术难题&am…...

Spring Batch 大数据量处理实战:从入门到精通

Spring Batch 大数据量处理实战&#xff1a;从入门到精通别叫我大神&#xff0c;叫我 Alex 就好。处理百万级数据不用愁&#xff0c;Spring Batch 让批处理变得优雅而高效。一、Spring Batch 基础架构 1.1 核心配置 Configuration EnableBatchProcessing public class BatchCon…...

终极指南:如何使用gosu实现容器运行时权限管理的标准化方案

终极指南&#xff1a;如何使用gosu实现容器运行时权限管理的标准化方案 【免费下载链接】gosu Simple Go-based setuidsetgidsetgroupsexec 项目地址: https://gitcode.com/gh_mirrors/go/gosu 在容器化应用的世界里&#xff0c;权限管理是确保安全性和稳定性的关键环节…...

G-Helper:华硕笔记本色彩配置一键恢复指南

G-Helper&#xff1a;华硕笔记本色彩配置一键恢复指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址: https://…...

QAnything混合检索实战:ElasticSearch与向量搜索的协同优化

QAnything混合检索实战&#xff1a;ElasticSearch与向量搜索的协同优化 1. 为什么电商搜索总在“猜”用户心思&#xff1f; 你有没有遇到过这样的情况&#xff1a;在电商平台搜索“轻便透气运动鞋”&#xff0c;结果首页全是厚重的登山靴&#xff1f;或者搜“适合夏天穿的连衣…...

PingFangSC字体实战指南:跨平台字体解决方案的最佳实践

PingFangSC字体实战指南&#xff1a;跨平台字体解决方案的最佳实践 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件&#xff0c;包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 行业痛点诊断 场景导入&#xff1a;设…...

告别临时表!MySQL8窗口函数优化复杂统计查询的3种典型方案

MySQL8窗口函数实战&#xff1a;3种替代临时表的高效统计方案 在数据分析与报表生成场景中&#xff0c;开发人员经常需要处理复杂的多维度统计需求。传统解决方案往往依赖临时表和多次查询拼接&#xff0c;不仅代码冗长&#xff0c;还存在显著的性能瓶颈。MySQL8引入的窗口函数…...

Arduino库管理终极指南:在VS Code中如何优雅添加自定义头文件(避坑版)

Arduino库管理终极指南&#xff1a;在VS Code中优雅添加自定义头文件 第一次在VS Code里看到"fatal error: my_library.h: No such file or directory"的红色报错时&#xff0c;我盯着屏幕发了五分钟呆。作为从Arduino IDE转战VS Code的老玩家&#xff0c;本以为能无…...