首页 > 其他分享 >实验课程: SSM 实验名称: MyBatis1

实验课程: SSM 实验名称: MyBatis1

时间:2023-01-08 10:33:58浏览次数:61  
标签:MyBatis1 对象 Spring SSM SqlSession 实验 SQL MyBatis Servlet

一.实验目的

  1. 对比传统Servlet技术和SSM框架的优缺点?

2. ORM思想个人理解?

3. MyBatis框架的优点?

4. Mapper文件里的标签组有几种反参方式?

5. 什么是SqlSessionFactory?什么是SqlSession?

6. MyBatis生命周期1的过程?

7. 项目代码

二. 实验内容

1)Servlet的优点

① 是MVC的基础,其他的框架比如Struts1等都是从Servlet基础上发展过来的,所以掌握Servlet是掌握MVC的关键;

②  Servlet把最底层的API暴露给程序员,可以对Servlet进行封装;

③ 市场上任何一个MVC的框架都是Servlet发展过来的,所以了解Servlet的运行机制很关键。

Servlet的缺点

① 每写一个Servlet在web.xml中都要做相应的配置。如果有多很Servlet,会导致web.xml内容过于繁多;

② 在Servlet中,doGet方法和doPost方法有HttpServletRequest和HttpServletResponse参数。这两个参数与容器相关,如果想在Servlet中作单元测试,则必须初始化这两个参数;

③ 如果一个Servlet中有很多个方法,则必须采用传递参数的形式,分解到每一个方法中。

Spring

Spring的优点

① 容器:Spring是一个容器,包含并管理对象的生命周期和配置;

② 支持AOP:Spring提供了对AOP的支持,它允许将一些通用任务,如安全、事物、日志等进行集中式处理,从而提高了程序的复用性;

③ 轻量级框架:Spring是轻量级框架,其基本的版本大约2M;

④ 控制反转 :Spring通过控制反转实现松散耦合,对象们给它们的依赖,而不是创建或者查找依赖的对象们方便解耦,简化开发;

⑤ 方便程序的测试:Spring提供了对Junit4的支持,可以通过注解方便的测试Spring程序;

⑥ 降低Jave EE API的使用难度:Spring对Java EE开发中非常难用的一些API(如JDBC),都提供了封装,使这些API应用难度大大降低;

 

⑦ 方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如Struts、Mybatis等)的直接支持;

⑧ 支持声明式事务处理:只需要通过配置就可以完成对事物的管理,而无须手动编程。

Spring的缺点

① 依赖反射,反射影响进程;

② 太过于依赖设计模式;

③ 控制器过于灵活;

④ 不支持分布式应用。

SpringMVC的优点

① 拥有强大的灵活性,非侵入性和可配置性;

② 提供了一个前端控制器DispatcherServlet,开发者无需额外开发控制器对象;

③ 分工明确,包括控制器、验证器、命令对象、模型对象、处理程序映射视图解析器,每一个功能实现由一个专门的对象负责完成;

④ 可以自动绑定用户输入,并正确的转换数据类型;

⑤ 可重用的业务代码:可以使用现有的业务对象作为命令或表单对象,而不需要去扩展某个特定框架的基类。

SpringMVC的缺点

① Servlet API 耦合难以脱离容器独立运行;

② 太过于细分,开发效率低。

Mybatis的优点

① 与JDBC相比,减少了50%以上的代码量;

② Mybatis是最简单的持久化框架,小巧并且简单易学;

③ Mybatis灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,可重用;

④ 提供XML标签,支持编写动态SQL语句(XML中使用if, else);

 

⑤ 提供映射标签,支持对象与数据库的ORM字段关系映射(在XML中配置映射关系,也可以使用注解)。

Mybatis的缺点

① SQL语句的编写工作量较大,对开发人员的SQL语句编写有一定的水平要求;

② SQL语句过于依赖数据库,不能随意更换数据库;

拼接复杂SQL语句时不灵活。

2)ORM思想个人理解:

 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。

3)MyBatis框架的优点:

.一、MyBatis框架的优点:

  1. 1. 与JDBC相比,减少了50%以上的代码量。
  2. 2. MyBatis是最简单的持久化框架,小巧并且简单易学。
  3. 3. MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,并可重用。

 提供XML标签,支持编写动态SQL语句.

  1. 提供映射标签,支持对象与数据库的ORM字段关系映射。

4)

方法1:顺序传参法

方法2:注解传参法

方法3:Map传参法

方法4:Java Bean传参法

5)

SqlSessionFactory

SqlSessionFactory是MyBatis的关键对象,它是个单个数据库映射关系经过

编译后的内存镜像.SqlSessionFactory对象的实例可以通过

SqlSessionFactoryBuilder对象类获得,而SqlSessionFactoryBuilder则可以从XML

配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例.

每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心.同时

SqlSessionFactory也是线程安全的,SqlSessionFactory一旦被创建,应该在应用执行

期间都存在.在应用运行期间不要重复创建多次,建议使用单例模式.SqlSessionFactory

创建SqlSession的工厂。

整个MyBatis运行期间的核心工厂,大部分类都由它生产制造。

SqlSession

SqlSession是MyBatis的关键对象,是执行持久化操作的独享,类似于JDBC中的

Connection.它是应用程序与持久层之间执行交互操作的一个单线程对象,也是

MyBatis执行持久化操作的关键对象.SqlSession对象完全包含以数据库为背景的所有

执行SQL操作的方法,它的底层封装了JDBC连接,可以用SqlSession实例来直接执行

被映射的SQL语句.每个线程都应该有它自己的SqlSession实例.SqlSession的实例不

能被共享,同时SqlSession也是线程不安全的,绝对不能将SqlSeesion实例的引用放在

一个类的静态字段甚至是实例字段中.也绝不能将SqlSession实例的引用放在任何类型

的管理范围中,比如Servlet当中的HttpSession对象中.使用完SqlSession之后关闭

Session很重要,应该确保使用finally块来关闭它.

一次请求数据的连接,类似于JDBC中的Connection

6)

1.首先加载mybatis-config.xml总配置文件,根据development的参数配置连

接数据库;查询mappers映射关系,找到mapper.xml配置文件

2.执行mapper.xml文件,该文件记录了运行SQL;准备id的名字等待被调用

3.TestMain生成SqlSessionFactory工厂对象

4.由工厂对象生成SqlSession,然后打开连接数据库连接通道

5.对应调用mapper.xml文件中的id,执行mapper.xml中SQL语句

6.关闭SqlSession

 

 

 

 

 

 

 

 

 

 

标签:MyBatis1,对象,Spring,SSM,SqlSession,实验,SQL,MyBatis,Servlet
From: https://www.cnblogs.com/Lovew2/p/17034185.html

相关文章

  • 实验课程: SSM 实验名称: MyBatis2
    一.实验目的MyBatis框架下Dao层引入方式? 2.MyBatis框架下Service层引入方式?3.什么是代理模式? 4.MyBatis生命周期2的过程(最终)?5.项目代码二.实验......
  • 实验课程: SSM 实验名称: MyBatis3
    一.实验目的解析SSM框架的优缺点?2.常用的表关联方式?3.MyBatis如何处理表关联?4.项目代码二.实验内容1)SpringSpring的优点①容器:Spring是......
  • 实验数据日志
    实验数据日志 建图开始时间:22:22:11建图结束时间:22:22:16A*开始时间:22:22:17A*结束时间:22:22:17原始路径节点数量:13A*路径节点数量:39A*路径实际长度:......
  • MIT——6.828:操作系统工程——第2章:实验二:内存管理
    在本实验中,为操作系统编写内存管理代码,分为三个部分第一部分是物理内存管理,使得内核可以分配内存并稍后释放它。物理内存管理将以4096字节为单位运行,称为pages。这一部......
  • java基于ssm的图书管理系统图书借阅管理网站图书管理网站源码
    简介本项目是图书借阅管理系统,主要实现了对图书的管理和借阅。演示视频https://www.bilibili.com/video/BV14p4y1H7GQ/?share_source=copy_web&vd_source=ed0f04fbb713......
  • java基于ssm的个人博客系统个人博客网站个人博客项目源码
    简介Javassm开发的个人博客系统,可以发布博客,照片,站长留言。演示视频https://www.bilibili.com/video/BV1sf4y1y7Ne/?share_source=copy_web&vd_source=ed0f04fbb713154......
  • 计算机网络企业级网络构建与配置实现实验
    企业级网路构建与配置实现实验具体任务本次实验要完成的主要任务有:(1)设备命名和端口规划(2)IP地址规划对图6-1中的所有网络进行IP地址的分配和子网划分。(3)VLAN划分与配......
  • 数字图像处理实验课
    数字图像处理实验课实验02图像采样与量化图像采样image1=imread('face.jpg');image2=image1(1:2:end,1:2:end);%每2位采1位image3=image1(1:4:end,1:4:end);%......
  • BST查找结构与折半查找方法的实现与实验比较
    简介作业:查找结构与排序方法作业题目:BST查找结构与折半查找方法的实现与实验比较要求编写程序实现BST存储结构的建立(插入)、删除、查找和排序算法;实现折半查找算法......
  • 实验室装修施工找哪里比较好?
    实验室装修施工找哪里比较好?找经验丰富的装修实验室公司,装修实验室是一个综合性比较强的装饰工艺,设计实验室,装修实验室,布置规划整体实验室的要求都要专业,日后才能更好合......