Java基础知识总结(26)

MyBatis

MyBatis框架解决的问题:

减轻使用JDBC的复杂性,不用编写重复的常见connection,Statement;不用编写关闭资源代码。直接使用java对象,表示结果数据。让开发者专注SQL的处理。其他分心的工作由MyBatis代劳。

三层架构

UI:(用户界面)表示层,负责和用户的交互,用来接收客户端的输入,调用业务逻辑层进行功能处理,返回结果给客户端,过去的servlet就是界面层的功能。

BLL:业务逻辑层,最主要的一层,业务的业务逻辑,用来进行整个项目的业务逻辑处理,向上为界面1提供处理结果,向下问数据访问层要数据,承上启下。

DAL:数据访问层,操作数据,中间枢纽环节,专门用来进行数据库的增删改查操作,向上为业务逻辑层提供数据。

各层之间的调用顺序是固定的,不允许跨层访问。

优点:

1、结构清晰,耦合度低,各层的分工明确

2、可维护性高,可扩展性高

3、有利于标准化

4、开发人员可以只关注整个结构中的期中某一层的功能实现

5、有利于各层的功能复用

常用的SSM框架:

Spring:整合其他框架的框架,它的核心是Ioc和AOP,它由20多个模块构成,在很多领域都提供了很好的解决方案,是一个大佬级别的存在

SpringMVC:它是Spring家族中的一员,专门用来优化控制器(Servlet)的,提供了及简单的数据提交、数据携带

、页面跳转。

MyBatis(iBatis):apache的开源项目,是持久化层(数据访问层)的一个框架,用来进行数据库访问的优化,专注于sql语句,极大的简化了JDBC繁琐的访问机制。

什么是框架

他是一个半成品软件,将所有的公共的,重复的功能解决掉帮助程序快速高效的进行开发,它是可复用、可扩展的。减少重复、和技术含量较低的工作量

SqlMapConfig.xml :核心配置文件

Mapper1.xml:写sql语句

SqlSessionFactory:工厂模式

6.添加框架的步骤

1、添加依赖

2、添加配置文件

具体步骤:

1、新建库建表

2、新建maven项目,选择quickstart模板

3、修改目录,添加缺失的目录,修改目录属性

4、修改pom.xml文件,添加MyBatis依赖,添加mysql的依赖

5、修改pom.xml文件,添加资源文件指定

6、在idea添加数据库的可视化

7、添加jdbc.properties属性文件(数据库的配置)

8、添加SqlMapConfig.xml文件,MyBatis的核心配置文件

9、创建实体类Student,用来封装数据

10、添加完成学生表的增删改查的功能的StudentMapper.xml文件

11、创建测试类,进行功能测试

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

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

相关文章

如何更好地收集软件需求并快速转换成软件功能

摘要 在软件开发过程中,需求收集与转换是确保项目成功的关键环节。本文详细探讨了如何更有效地收集软件需求,并迅速将这些需求转化为实际的软件功能,涉及的方法包括深入的用户研究、原型设计、敏捷开发方法以及持续的反馈循环。 关键词&…

【华为OD机试】机器人搬砖【C卷|100分】

题目描述 机器人搬砖,一共有N堆砖存放在N个不同的仓库中,第i堆砖中有bricks[i]块砖头, 要求在8小时内搬完。机器人每小时能搬砖的数量取决于有多少能量格, 机器人一个小时中只能在一个仓库中搬砖,机器人的能量格每小时补充一次且能量格只在这一个小时有效,为使得机器人损…

Hello算法2:复杂度分析

Hello算法2:复杂度分析 本文是基于k神的Hello 算法的读书笔记,请支持实体书。 https://www.hello-algo.com/chapter_paperbook/ 算法效率 算法效率评估 设计算法时,我们追求以下两个目标: 找出解法找出最优解 最优解通常包含…

Java 8中的Stream API及其用途详解

Java 8中的Stream API是Java函数式编程的一个核心组成部分,它允许你以声明性方式处理数据集合(如列表、集合等)。通过使用Stream API,你可以更方便地执行复杂的操作,如过滤、映射、排序和聚合,而无需编写大…

部署实施案例分析题

习题一 随着医院信息化程度的不断提高,各业务系统的全面上线,对IT基础架构的安全性、稳定性以及业务系统的连续性提出了较高的要求,运维工作也相同面临了前所未有的挑战。 为加强该医院的运维工作的规范化,并提高日常运维的工作…

实验7 内置对象response

编写代码&#xff0c;掌握request、response的用法。【参考课本4.6.2】 三、源代码以及执行结果截图&#xff1a; input.jsp <% page language"java" contentType"text/html; charsetutf-8" pageEncoding"utf-8"%> <!DOCTYPE html>…

LeetCode刷题笔记之动态规划(三)

一、子序列/子数组问题 子序列&#xff1a;按原数组的顺序排列&#xff0c;不一定是原数组中的相邻元素组成的。即子序列可以是不连续的。 子数组&#xff1a;原数组中连续的几个元素组成的数组。 1. 300【最长递增子序列】 题目&#xff1a; 给你一个整数数组 nums &#xff…

Redis面试题-缓存穿透,缓存击穿,缓存雪崩

1、穿透: 两边都不存在&#xff08;皇帝的新装&#xff09; &#xff08;黑名单&#xff09; &#xff08;布隆过滤器&#xff09; 解释&#xff1a;请求的数据既不在Redis中也不在数据库中&#xff0c;这时我们创建一个黑名单来存储该数据&#xff0c;下次再有类似的请求进来…

Q-Day提前?IBM警告:「量子+AI」将触发巨大风险!

Q-Day&#xff0c;即量子计算机强大到足以破解当前加密方案的时刻&#xff0c;原本被视为一个从近期到长期可能面临的挑战&#xff0c;而非刻不容缓的现实问题。然而&#xff0c;最新的研究发现似乎加速了这一天的到来。 IBM的研究团队在一篇论文中提出&#xff0c;混合量子经典…

测试学习1

学习目标 熟悉测试流程和规范&#xff0c;熟练掌握软件测试方法至少熟悉功能测试.性能测试.安全测试中的一种;熟练使用常用的测试工具&#xff0c;熟悉缺陷管理跟踪软件(禅道.Jira.QC等)&#xff0c;熟悉持续集成工具Jenkin;熟悉Linux操作系统&#xff0c;熟悉TCP/HTTPS等网络…

Redis入门到实战-第二十二弹

Redis实战热身Sentinel篇 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是一个开源的&#xff08;采用BSD许可证&#xff09;&#xff0c;用作数据库、缓存、消息代理和流处理引擎的内存…

利用出海、Socks5代理与代理IP

在当今数字化时代&#xff0c;跨界电商已成为企业扩展业务、拓展市场的重要策略。然而&#xff0c;这种扩展并非没有风险。网络安全问题一直是跨界电商必须面对的挑战之一。为了确保数据安全、保护用户隐私&#xff0c;以及有效应对地区限制&#xff0c;出海、Socks5代理与代理…

谷歌DeepMind推出SIMA智能体,可以跟人一起玩游戏

谷歌 DeepMind 推出了 SIMA&#xff0c;这是一种通过训练学习游戏技能的人工智能代理&#xff0c;因此它玩起来更像人类&#xff0c;而不是一个只做自己事情的强大人工智能。 从早期与 Atari 游戏合作&#xff0c;到以人类大师级别玩《星际争霸 II》的 AlphaStar 系统&#xf…

【STM32CubeMX(2)】点亮第一个LED灯

通过本节可以学习到&#xff1a; 如何通过STM32CubeMX建立一个单片机工程如果是仿真下载需要注意些什么怎么通过HAL库使用外设功能 软件环境&#xff1a; STM32CubeMX version6.10.0 Keil_v5&#xff08;MDK-ARM&#xff09; version 5.32 硬件环境&#xff1a; STM32F103…

vue 列表渲染

v-for​ 我们可以使用 v-for 指令基于一个数组来渲染一个列表。v-for 指令的值需要使用 item in items 形式的特殊语法&#xff0c;其中 items 是源数据的数组&#xff0c;而 item 是迭代项的别名&#xff1a; const items ref([{ message: Foo }, { message: Bar }]) <l…

Mysql数据库:主从复制与读写分离

目录 前言 一、Mysql主从复制概述 1、Mysql主从复制概念 2、Mysql主从复制功能和使用场景 2.1 功能&#xff08;为何使用主从复制&#xff09; 2.2 适用场景&#xff08;何时使用主从复制&#xff09; 3、Mysql复制的类型 3.1 基于SQL语句的复制&#xff08;Statement默…

态势感知平台简单介绍

什么是态势感知平台&#xff1f; 安全态势感知平台是一种综合型网络安全解决方案&#xff0c;其核心目标在于帮助企业提升对安全态势的感知能力&#xff0c;从而更有效地应对不断变化的网络威胁环境。 该平台具备多种核心功能。首先&#xff0c;它能够实现数据收集与整合&…

数字化对制造业生产效率的影响与优化策略

导 读 ( 文/ 1419 ) 在当今竞争激烈的市场环境下&#xff0c;制造业企业面临着日益增长的压力&#xff0c;需要不断提高生产效率以保持竞争力。数字化技术作为一种重要的生产力工具&#xff0c;已经在制造业中得到广泛应用。本文将探讨数字化对制造业生产效率的影响&#xff0c…

SpringBoot与Prometheus监控整合

参考&#xff1a; springboot实战之prometheus监控整合-腾讯云开发者社区-腾讯云 https://www.cnblogs.com/skevin/p/15874139.html https://www.jianshu.com/p/e5dc2b45c7a4

python可视化:tqdm进度条控制台输出模块

前言 在处理大量数据或执行耗时操作时&#xff0c;了解代码执行的进度是至关重要的。在Python中&#xff0c;通过使用进度条可以有效地实现对代码执行进度的可视化展示。 tqdm 是一个快速、可扩展的Python进度条库&#xff0c;能够实时显示代码执行的进度。并且它提供了简洁的A…