Mybaties学习笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

首先理解什么是orm
Orm指的是关系映射,为了解决面向对象和关系型数据库不匹配而出现的技术.简单来说orm就是持久化的数据(DB)和实体对象(java对象)的一个映射模式.通过orm我们就可以把db中的数据封装到对应的实体对象当中,也可以把对象当中的数据再保存到数据库当中.
重点 映射规则,主要有三点
数据表对应类,表中字段对应类中的属性,表数据对应实体对象.

MyBaties介绍

原始jdbc操作步骤
1.注册驱动
2.获取数据库连接
3.获取执行者对象
4.提供一条sql语句
5执行这条语句获取到结果集
6.再对这个结果集进行相关的处理(把表中的数据封装到相应的类里面)
7.释放资源

Jdbc的弊端

  1. 频繁的创建和销毁数据库连接肯定会造成资源的浪费,影响性能
  2. Sql语句直接写死在代码中,将来修改sql语句,就得动源代码,造成代码不易维护
  3. 操作的时候需要手动将结果集中封装到实体对中.
  4. 增删改查操作需要的参数时,需要手动的将实体对象的数据设置到sql语句占位符中
    原始解决方案
  5. 利用数据库连接池解决
  6. Sql语句抽取到配置文件中
  7. 使用反射,内省等底层技术,将实体与表进行属性和字段的自动映射

MyBasties介绍
1.这是一个基于Java的持久层框架,内部封装了jdbc,使开发者只需要关注sql本身,而不需要花费精力去处理加载驱动,创建连接,创建执行者等复杂的操作.
2.MyBaties通过xml或者注解的形式将各种需要执行的statement配置起来,并通过Java对象和statement中的SQL的动态参数映射,形成最终要执行的SQL语句.
3.执行完成后将结果映射为Java对象并返回.
(Statement 是 Java 执行数据库操作的一个重要接口,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。Statement对象,用于执行不带参数的简单SQL语句。)

具体操作步骤

  1. 导jar包
  2. 编写映射配置文件(通过名称空间和id来找到最终想执行的sql语句的)
  3. 编写核心配置文件(获取到数据库连接相关的参数)
  4. 使用相应的API来完成编码

相关的API

  1. Resources 加载资源的工具类,用来加载配置文件
    (当然不用它也可以,通过当前这个类获取他的class对象 ,然后得到类加载器,也是调用的这个方法)
  2. SqlSessionFactoryBuilder 获取SqlSessionFactory工厂对象的功能类,因为实际上帮我们完成操作的是SqlSession对象,而这个对象实际上需要工厂对象来获取.这个类就是用来获取工厂对象的.
  3. SqlSessionFactory 获取SqlSession构建者对象的工厂接口,有两个构造,空参的需要自己提交事务,有参的可以自动提交事务
  4. SqlSession 构建对象接口,用于执行SQL,管理事务,接口代理,内部有增删改查的操作,事务的提交回滚,获取指定的代理实现类对象以及释放资源.

映射配置文件
映射配置文件包含了数据和对象之间的映射关系以及要执行的SQL语句
里面比较重要的有一下几个部分

1.DTD约束,主要用来提示错误信息,比如标签写错了
2.Mapper 核心根标签,必须是这个已经提前约定好了
namespace属性,代表名称空间.(配合我们的id来找到最终想要执行的sql语句)
3.Select标签 执行查询的操作
id属性 惟一的标识
resultType属性 查询的属性封装到哪个对象当中,就用resultType指定
parameterType属性 参数映射对象的类型(用来指定我们要传入的参数)
如果我们sql语句中有参数,我们通过#{}的形式来写

主要执行流程

  1. 加载核心配置文件 Resources
  2. 获取SqlSession工厂对象SqlSessionFactoryBuilder
  3. 通过工厂对象获取Session对象 SqlSession
  4. 执行映射配置文件中的sql语句并接收结果 (“名称空间.唯一标识”, 真实参数)
  5. 处理结果
  6. 释放资源

核心配置文件
核心配置文件包含了MyBaties最核心的设置和属性信息.如数据库连接,事物,连接池信息等

  1. DTD的约束
  2. Configuration 核心根标签
  3. Environments 配置数据库环境的,环境是可以有多个的,具体用属性来指定(注意这里有s)
    a) Default属性 指定具体使用哪一个
  4. Environment 配置数据库环境
    a) Id属性 惟一的标识
  5. TransatctionManager
    a) Type属性代表事物处理的类型
  6. dataSource 代表数据源的信息
    a) type 属性代表连接池信息
  7. dataSource中还有许多子标签property代表获取数据库表连接的配置信息.
  8. Mappers 引入映射配置文件的标签
    a) Mapper子标签 引入指定的映射配置文件
    b) Resource属性指定映射配置文件的名称
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值