mybatis介绍,优点,执行原理,使用步骤

 

 

分类:

配置和代码分离,sql 和java 代码分离

1、 数据库连接的配置需要配置到外部文件中,修改配置不需要重新编译java文件,解决:外部配置;

2、 sql硬编码到java文件中,1、修改时需要改java代码 2、没有达到重用的目的,解决:能否放置到外部配置文件中?

3、 手动设置参数:1、需要判断参数的位置 2、判断参数类型,使用非常麻烦,解决:能否自动设置参数?

4、 手动遍历结果集,需要设置列名和判断参数类型,解决:能否自动映射为java对象;

5、  频繁的创建连接、关闭连接,造成资源浪费,引起性能问题,解决:使用数据库连接池;dbcp , c3p0,

2:什么是框架

框架是一个半成品,已经对基础的代码进行了封装并提供相应的API,开发者在使用框架是直接调用封装好的api可以省去很多代码编写,从而提高工作效率和开发速度。

举例:制作水饺

方式一:

自行购买面粉准备器具加水进行搅拌成面团,不能太干也不能太湿,将整个大面团拆分成小面团,用擀面杖在准备好面团上进行碾压成面皮严格掌握厚薄,把制作好的肉馅包在面皮里面,水饺制作完成。

方式二:

直接购买面皮,把制作好的肉馅包在面皮里面,水饺制作完成。

方式一比较浪费时间,且必须掌握怎么搅拌面团的技巧和碾压面皮的技巧,相对较为复杂,面向过程方式。方式二采用面向对象的方式大大缩短了制作水饺的时间,面皮就是半成品

框架定义:框架是一种经过校验、具有一定功能的半成品软件。

经过校验:指框架本身经过测试,且框架自身所具有的功能已经实现

具有一定功能:指框架可以完成特定的功能,不同的框架功能不同

半成品软件:指框架自身是一个软件,但是该软件无法直接运行,需要配合其他的程序才可以完成指定的工作

3:mybatis介绍

 

 

MyBatis可以将SQL语句配置在XML文件中,这避免了JDBC在Java类中添加SQL语句的问题;通过MyBatis提供的输入参数映射方式,将参数自由灵活地配置在SQL语句配置文件中,解决了JDBC中参数在Java类中手工配置的问题;通过MyBatis的输出映射机制,将结果集的检索自动映射成相应的Java对象,避免了JDBC中对结果集的手工检索;同时MyBatis还可以创建自己的数据库连接池,使用XML配置文件的形式,对数据库连接数据进行管理,避免了JDBC的数据库连接参数的硬编码问题。

综上所述,MyBatis的特点是,采用配置文件动态管理SQL语句,并含有输入映射、输出映射机制以及数据库连接池配置的持久层框架

4:Mybatis优点(多读几次)   - 记住

简单:易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

实用:提供了数据映射功能,提供了对底层数据访问的封装,提供了DAO框架,可以使我们更容易的开发和配置

灵活:通过sql基本上可以实现我们不使用数据访问框架可以实现的所有功能,或许更多。

功能完整:提供了连接管理,缓存支持,线程支持,(分布式)事物管理,通过配置关系对象映射等数据访问层需要解决的问题。提供了DAO支持,并在DAO框架中封装了ADO.NET,NHibernate和DataMapper。

增强系统的可维护性:将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

 

5:Mybatis整体架构,mybatis的执行原理  - 记住

 

1、 Mybatis的配置,有2类配置文件,Mybatis-Config.xml、Mapper.xml

a)      mybatis-config.xml 配置了全局的参数,全局只有一个配置,文件名称不是固定的,随意取名。

b)     Mapper.xml  配置了sql Statement,该文件可以有多个,每个配置文件中可以有多个sql Statement;

2、 通过配置文件可以得到SqlSessionfactory

3、 通过SqlSessionFactory得到SqlSession,得到Session后可以执行sql。

4、 SqlSession通过底层提供的Executor(执行器)执行sql

5、 Mybatis将Mapper.xml中的sqlStatement解析为MappedStatement对象

6、 通过参数输入,参数类型有三种,HashMap、简单数据类型、pojo。

7、 在数据库中执行sql

8、 输出得到结果,输出类型有三种,HashMap、简单数据类型、pojo。

6:Mybatis使用步骤

代码中的使用步骤

1)   通过配置文件创建SqlSessionFactory

2)   通过SqlSessionFactory创建SqlSession对象

3)   通过SqlSession操作数据库

4)   调用session.commit()提交事务

5)   调用session.close()关闭会话

7:快速入门

 

需求 : 根据用户id查看用户信息

1:新建项目,导入jar包

1个mybatis的核心包,9个依赖包,1个驱动包

2:创建数据库和表,以及实体

注意:数据库表中的字段必须和实体中的属性一模一样!!!

3:编写核心配置文件, 导入日志文件

mybatisConfig.xml , 实体类名Mapper.xml ,  一般是一张表对应一个实例类,有一个类就会有一个 类名Mapper.xml , UserMapper.xml

注意:引入日志文件

4:编写测试代码

 

执行增删改的操作的时候,必须要提交事务才会持久化的保存到数据库中!

提交事务的方式有2中

1:手动sqlsession.commit();

2:获取sqlsession的时候,给一个true的参数,让他自动提交

需求:根据用户的 id查询用户信息,返回一个用户对象

 

posted @ 2022-02-12 23:13  这题我不会  阅读(333)  评论(0)    收藏  举报