前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MyBatis-

MyBatis-

原创
作者头像
Quinlan
修改2021-05-22 17:13:40
4560
修改2021-05-22 17:13:40
举报

Mybatis的作用

Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,加载驱动、创建连接、创建statement等繁杂的过程,开发者开发时只需要关注如何编写SQL语句,可以严格控制sql执行性能,灵活度高。

myabtis通过内部封装,简化了开发者正在驱动、创建连接等繁杂的过程开发者只需要关注如何编写SQL语句就可以,

Mybatis是一个半ORM(对象关系映射)框架,

我们问什么要说它是半ORM框架?

因为mybatis在查询关联对象或关联集合对象的时候需要我们开发者手动的去编写sql查询语句

那什么是全ORM(对象关系映射)框架?

Hibernate就是一种全ORM,它去查询关联对象的时候就可以根据对象关系模型直接获取。

为什么有了全自动ORM框架,我们还要用半自动ORM框架mybatis那?、

由于mybatis使开发者专注于SQL本身,使得SQL灵活度高,所以比较适合对性能的要求很高,或者需求变化较多的项目,如互联网项目。

mybatis的运行机制

mybatis通过xml 文件或注解的方式配置要执行的各种 statement,并通过java对象和 statement中sql的动态参数进行映射,生成最终执行的sql语句,最后由mybatis框架执行sql,并将结果映射为java对象并返回。(从执行sql到返回result的过程)。

作为一个半ORM框架,MyBatis 可以使用 XML 或注解来配置和映射原生信息,将 POJO映射成数据库中的记录,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。

mybatis框架怎么做有什么好处吗?

因为mybatis可以编写SQL语句,所以当我们查询数据库的时候,就不会对应用程序或者数据库现有的设计造成影响

SQL也不需要再写在代码中,而写在xml里,解除了与程序代码的耦合,便于统一管理

mybatis还提供了XML标签,支持编写动态SQL

与JDBC相比的话,消除了大量JDBC连接需要编写的代码,也不需要像JDBC一样需要手动控制与数据库的连接

因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis也都支持

mybatis还可以与Spring很好的集成;

mybatis的缺点有哪些?

因为mybatis可以编写SQL,使得我们可以应对需求变化较多的项目,但也造成了SQL语句的编写工作量大,对开发人员的SQL编写能力有要求

SQL语句依赖数据库,导致数据库移植性差,换数据库就需要学习新的数据库,学习成本加大

#{}和${}的区别是什么?

#{}是预处理,${}是字符串替换

mybatis在处理的时候会有不同,在处理${}时,就是把${}直接替换成变量的值。

而Mybatis在处理#{}时,会对sql语句进行预处理,将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值。

使用#{}可以有效的防止SQL注入,提高系统安全性。

https://blog.csdn.net/a745233700/article/details/80977133

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档