mybatis与mysql的优点_Mybatis和JDBC的区别(优缺点)

Mybatis和JDBC的区别(优缺点)

JDBC是Java提供的一个操作数据库的API;

[b]MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。[/b]

Mybatis的优点:

1. 优化获取和释放

2.SQL统一管理,对数据库进行存取操作(修改SQL一个需要重新编译 一个不需要)

3.生成动态SQL语句

4.能够对结果集进行映射(一个是resultset一个可以映射成JavaBean对象、一个Map、一个List等等)

5.mybatis提供了一级和二级缓存(需要配置打开),强大的动态sql,自动化的session管理,都比手工维护来的方便和安全。

另外:

MyBatis使用SqlSessionFactoryBuilder来连接完成 JDBC需要代码完成的数据库获取和连接,减少了代码的重复。

mybatis的sql统一放在xml文件 优雅 统一 ,好管理

[b]mybatis的核心组件:[/b]

SqlSessionFactoryBuilder:会根据配置信息或代码来生成SqlSessionFactory;

SqlSessionFactory:依靠工厂来生成SqlSession;

SqlSession:是一个既可以发送SQL去执行并返回结果,也可以获取Mapper的接口;

SQL Mapper:是MyBatis新设计的组件,由一个Java接口和XML文件构成,需要给出对应的SQL和映射规则。它负责发送SQL去执行,并返回结果。

构建SqlSessionFactory

每个MyBatis应用都是以SqlSessionFactory的实例为中心的,它的任务是创建SqlSession。SqlSesion类似于一个JDBC的Connection对象。

提供了2种方式创建SqlSessionFactory:一种是XML配置的方式,一种是代码的方式,推荐使用XML配置的方式。

[b]mybatis组件生命周期[/b]

SqlSessionFactory在MyBatis应用的整个生命周期中,每个数据库只对应一个SqlSessionFactory,可以实现一个工具类,以单例模式获取该对象。

SqlSession的生命周期在请求数据库处理事务的过程中,它是一个线程不安全的对象,在涉及多线程的时候要特别当心。它存活于一个应用的请求和操作,可以执行多条SQL,保证事务的一致性。

Mapper的作用是发送SQL,然后返回需要的结果,或者执行SQL修改数据库的数据,所以它应该在一个SqlSession事务方法之内,如同JDBC中一条SQL语句的执行,它最大的范围和SqlSession是相同的。

打赏

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值