MyBatis介绍(一)
【MyBatis介绍(一)】一、Mybatis介绍
1.1 简介:
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
1.2 MyBatis官网: http://mybatis.org
1.3 ORM (Object/Relational Mapping ):即对象/关系映射,是一种持久化技术。
1.4 mybatis下载
mybaits的代码由github.com管理,地址:https://github.com/mybatis/mybatis/releases
(mybatis-3.2.7.jar—-mybatis的核心包)
1.5 MyBatis架构
(1) mybatis配置
SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。
mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。
(2)、 通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂,完成对配置文件的读取
(3)、 由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行。
作用是调用mapper文件进行数据操作
(4)、关闭SqlSession对象
1.6 MyBatis基本要素:,,
(1)核心接口和类: 以SqlSessionFactory对象的实例为核心
1.首先获取SqlSessionFactoryBuilder对象 根据XML配置文件或Configuration实例构建对象
2.获取SqlSessionFactory对象,通过SqlSessionFactoryBuilder对象来获取
(2)核心配置文件(元素节点是有先后顺序)
.1 configuration 整个XML配置文件的根节点
properties(属性)
settings(全局配置参数)
typeAliases(类型别名)
typeHandlers(类型处理器)
objectFactory(对象工厂)
plugins(插件)
environments 元素 可以配置多套运行环境
environment(环境子属性对象)
transactionManager(事务管理)
dataSource(数据源)
. mappers元素 映射器 定义SQL映射语句(1.使用resource获取路径 2.使用url获取路径)
(3) SQL映射文件
注意:
1.实体类对象的属性与数据库表的字段名一致
2.SqlSession的使用范围
SqlSession中封装了对数据库的操作,如:查询、插入、更新、删除等。
通过SqlSessionFactory创建SqlSession,而SqlSessionFactory是通过SqlSessionFactoryBuilder进行创建。
3 SqlSessionFactoryBuilder
SqlSessionFactoryBuilder用于创建SqlSessionFacoty,SqlSessionFacoty一旦创建完成就不需要SqlSessionFactoryBuilder了,因为SqlSession是通过SqlSessionFactory生产,所以可以将SqlSessionFactoryBuilder当成一个工具类使用,最佳使用范围是方法范围即方法体内局部变量。
4 SqlSessionFactory
SqlSessionFactory是一个接口,接口中定义了openSession的不同重载方法,SqlSessionFactory的最佳使用范围是整个应用运行期间,一旦创建后可以重复使用,通常以单例模式管理SqlSessionFactory。
5 SqlSession
SqlSession是一个面向用户的接口, sqlSession中定义了数据库操作,默认使用DefaultSqlSession实现类。
6 selectOne和selectList
动态代理对象调用sqlSession.selectOne()和sqlSession.selectList()是根据mapper接口方法的返回值决定,如果返回list则调用selectList方法,如果返回单个对象则调用selectOne方法。
7 namespace
mybatis官方推荐使用mapper代理方法开发mapper接口,程序员不用编写mapper接口实现类,使用mapper代理方法时,输入参数可以使用pojo包装对象或map对象,保证dao的通用性。
推荐阅读
- 一个人的旅行,三亚
- 一个小故事,我的思考。
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 开学第一天(下)
- 一个人的碎碎念
- 2018年11月19日|2018年11月19日 星期一 亲子日记第144篇
- 遇到一哭二闹三打滚的孩子,怎么办┃山伯教育
- 第326天
- Y房东的后半生14
- 奔向你的城市