mybatis最全面试题

什么是数据持久化?

  • 数据持久化将内存数据存到磁盘里,或者磁盘到内存。比如,文件的存储、数据的读取等。数据模型可以是任何数据结构或者对象的模型,XML、二进制流。我们的CRUD都是数据持久化操作。

Mybatis框架简介

  • mybatis框架是一个开源的持久层框架
  • 它的内部封装了JDBC访问数据库操作,支持普通的SQL查询、存储过程和高级映射,几乎消除了所有JDBC代码,以及手工设置以及结果集检索。
  • mybatis作为持久层框架,其主要思想是程序中大大量SQL语句剥离出来,配置在配置文件当中,实现SQL的灵活配置。
  • 这样的好处是SQL与程序代码分离,在不修改代码情况下,直接在配置文件中修改SQL。

什么是ORM?对象关系映射

ORM就是对象关系映射,是一种数据持久化技术。它在对象模型和关系型数据库直接建立起对应关系,并且提供一种机制,通过JAVAbean对象去操作数据库表的数据。MyBatis通过建立简单的XML或者注解的方式进行配置和原始映射,将实体类和SQL语句之间建立映射关系,是一种半自动(之所以是半自动,以为我们要自己写SQL)和ORM实现。

Mybatis框架的优缺点以及使用的场合

优点:

  1. 与JDBC相比,减少了50%的代码量
  2. MyBatis是易学的持久性框架,小巧并且简单易学。
  3. Mybatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML文件里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,并可重用。
  4. 提供XML标签,支持编写动态的SQL,满足不同业务需求。
  5. 提供映射标签,支持对象与数据库ORM字段关系映射。

缺点

  1. SQL语句的编写工作量较大,对开发人员编写SQL具有一定的要求。
  2. SQL依赖于数据库,导致移植性特别差。

使用场景:

mysql专注于Sql自身,是一个足够灵活的DAO层解决方案,对性能的要求很高,或者需求变化比较多的项目,例如web项目,使用mybatis就是非常方便。

Mybatis与Hibernate有哪些不同

  1. Mybatis和Hibernate不同,他不是一个完全ORM框架,因为Mybatis需要程序员自己编写语句。
  2. Mybatis支持原生态sql,可以严格控制Sql执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,因为这类软件需求·变化频繁,一旦需求变化要求迅速输出成果。但是灵活无法做到不关联SQL。
  3. Hibernate无关数据库关系性好,可以提高开发效率。

#{} 和 ${}符号有哪些不同?

  1. #{} 是预编译处理,${}是字符串替换。
  2. Mybatis在处理#{}时,调用preparedStatement的set方法来赋值
  3. Mybatis在处理$ {}时,就是把$ {}替换成变量值。
  4. 使用#{}可以有效防止SQL注入提高系统安全性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值