当前位置: 首页 > 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文件中使用

http://www.lryc.cn/news/94878.html

相关文章:

  • 基于STM32单片机的智能家居烟雾温度火灾防盗报警的设计与实现
  • jenkins 采用ssh方式连接gitlab连接不上
  • 前缀和模板算法
  • SpringBoot 启动输出 Git 版本信息(2023/07/11)
  • SSH客户端连接远程服务器
  • “深入理解Redis:高性能缓存与数据存储的秘密“
  • 【论文阅读笔记】Attack-Resistant Federated Learning with Residual-based Reweighting
  • DevOps B站学习版(二)
  • MySQL(一)基本架构、SQL语句操作、试图
  • MySQL事务基础知识
  • form表单禁止浏览器自动填充密码
  • ios oc button 设置
  • 山西电力市场日前价格预测【2023-07-17】
  • vue3功能实现
  • 微服务系列文章 之 SpringCloud中遇到的一些bug
  • Linux——权限
  • [英语单词] components;
  • 【观察者模式】 ——每天一点小知识
  • el-ment ui 表格组件table实现列的动态插入功能
  • gitLab修改密码后,sourceTree如何修改密码
  • sop是什么意思
  • 【C#】Kestrel和IIS服务器下的同步与异步配置
  • GoLand导入redis的github包失败
  • Elasticsearch原理剖析
  • 数据在内存中的存储1(C语言进阶)
  • Kubernetes API Server 中启用 pprof 接口
  • Docker 私有仓库 harbor 搭建
  • 工厂方法模式
  • (CentOS 7)nvidia-smi:Failed to initialize NVML: Driver/library version mismatch
  • 呼吸灯——FPGA