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

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、创建测试类,进行功能测试

相关文章:

  • linux debian运行pip报错ssl tsl module in Python is not available
  • ethers.js:sign(签名)
  • 【第十二届“泰迪杯”数据挖掘挑战赛】【2024泰迪杯】B题基于多模态特征融合的图像文本检索—解题全流程(持续更新)
  • 三极管工作方式
  • 音频干扰检测(频域方法)
  • 大学生创业基础(考试--绝密版)
  • 一些常见的ClickHouse问题和答案
  • buy me a btc 使用数字货币进行打赏赞助
  • vue3+ts白屏问题解决
  • 【计算机网络】第三章 数据链路层(虚拟机与局域网)
  • python实战之PyQt5桌面软件
  • C++从入门到精通——缺省参数
  • 【scala】使用gradle和scala构建springboot程序
  • 数字乡村战略实施:科技引领农村经济社会全面发展
  • ThreadPoolExecutor经典面试题
  • JavaScript-如何实现克隆(clone)函数
  • [case10]使用RSQL实现端到端的动态查询
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Angular Elements 及其运作原理
  • Java|序列化异常StreamCorruptedException的解决方法
  • miaov-React 最佳入门
  • node.js
  • Vim Clutch | 面向脚踏板编程……
  • 对JS继承的一点思考
  • 构建二叉树进行数值数组的去重及优化
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​TypeScript都不会用,也敢说会前端?
  • # Maven错误Error executing Maven
  • ###C语言程序设计-----C语言学习(6)#
  • #define、const、typedef的差别
  • $GOPATH/go.mod exists but should not goland
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (第27天)Oracle 数据泵转换分区表
  • (第一天)包装对象、作用域、创建对象
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)Unity3DUnity3D在android下调试
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .Net 垃圾回收机制原理(二)
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • @private @protected @public
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [android]-如何在向服务器发送request时附加已保存的cookie数据
  • [bzoj1038][ZJOI2008]瞭望塔
  • [C#]DataTable常用操作总结【转】
  • [C++从入门到精通] 14.虚函数、纯虚函数和虚析构(virtual)