mybatis框架详细总结

3 篇文章 0 订阅

Mybatis是什么?

Mybatis是一个开源的数据持久层框架,它内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询、存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis作为持久层框架,其主要思想是将程序中大量SQL语句剥离出来,配置在配置文件中,实现SQL的灵活配置。这样做的好处是将SQL与程序代码分离,可以在不修改程序代码的情况下,直接在配置文件中修改SQL。Mybatis通过简单的XML或者注解进行配置和原始映射,将实体类和SQL语句之间建立映射关系,是一种半自动化的ORM实现。(ORM:对象关系映射 对象指的是java实体类创建的对 关系指的是关系型数据库 映射指的是实体类中的属性和数据库表中的字段的映射

Mybatis工作原理

  1. 先读取全局配置文件mybatis-config.xml

  2. 由SqlSessionFactoryBuilder类的build方法来创建SqlSessionFactory(session工厂)

  3. 有SqlSessionFactory来创建SqlSession(sql会话 来执行sql语句)

  4. session会话会根据Mapper.xml(sql映射文件)调用相应的sql语句MyBatis真正强大之处就在于SQL映射文件,也是它的魅力所在。

SQL映射文件的几个顶级元素配置: 

-1、mapper:映射文件的更元素节点,只有一个属性namespace(命名空间),其作用如下:

1.用于区分不同的mapper,全局唯一
2.绑定DAO接口,即面向接口编程。当namespace绑定某一接口之后,可以不用写该接口的实现类,mybatis会通过接口的完整限定名查找到对应的mapper配置来执行SQL语句。因此namespace的命名必须要跟接口同名。
-2、cache:配置给定命名空间的缓存。
-3、cache-ref:从其他命名空间引用缓存配置
-4、resultMap:用来描述数据库结果集和对象的对应关系
-5、sql:可以重用的SQL块,也可以被其他语句引用。
-6、insert:映射插入语句
-7、update:映射更新语句
-8、delete:映射删除语句
-9、select:映射查询语句
resultMap应用场景:
1.实体类中的属性和数据库表字段名不一致  使用resultMap自己去写映射关系
2.复杂联合查询
select标签中的resultMap和resultType两个属性只能用一个
-1、什么时候使用resultType:
1.当查询结果符合值是基本数据类型 比如 int String Date等
2.当返回数据类型是跟实体类进行映射 然后字段名和属性名一致,  前提mybatis全局配置文件开启自动映射
-2、什么时候使用resultMap:
1.mybatis全局配置文件关闭了自动映射
2.字段名和属性名不一致
3.需要在resultMap标签来自映射关系
 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值