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查询用户信息,返回一个用户对象

浙公网安备 33010602011771号