24道Mybatis常见面试题总结及答案!
2020-01-04 18:58:53
1.什么是Mybatis?
1.Mybatis是一个半ORM(对象关系映射)框架,它在内部封装了JDBC。在开发过程中,只需要关注SQL语句本身,不需要努力处理复杂的过程,如加载驱动程序、创建连接、创建语句等。程序员直接编写原语sql,可以严格控制sql的执行性能,具有很高的灵活性。
2.MyBatis可以使用XML或注释来配置和映射本机信息,将POJO映射到数据库中的记录,避免几乎所有的JDBC代码,手动设置参数,并获得结果集。
3.配置要通过xml文件或注释执行的各种语句,并映射语句中java对象和sql的动态参数,以生成最终执行的sql语句。然后mybatis框架执行sql并将结果映射到java对象并返回。(从执行sql到返回结果)。
2.我的诱饵的优势:
1.基于sql语句的编程非常灵活,不会影响应用程序或数据库的现有设计。SQL是用XML编写的,它将SQL从程序代码中分离出来,便于统一管理;提供XML标记,支持编写动态SQL语句,并且可以重用。
2.与JDBC相比,减少了50%以上的代码量,消除了JDBC的大量冗余代码,不需要手动切换连接;

3.它与各种数据库非常兼容(因为我的巴蒂斯使用JDBC连接数据库,只要JDBC支持的数据库支持它)。
4.能够与弹簧很好地结合;
5.提供映射标签以支持对象和数据库之间ORM字段关系的映射;提供对象关系映射标签,以支持对象关系组件的维护。
3.缺点3。我的巴蒂斯框架:
1.SQL语句的编写工作量相对较大,尤其是当有许多字段和关联表时,这就要求开发人员具备一定的编写SQL语句的技能。

2.SQL语句依赖于数据库,这导致数据库的可移植性差,不能随意替换。
4.MyBatis框架的适用场合:
1.MyBatis专注于SQL本身,是一个灵活的DAO层解决方案。
2.对于具有高性能需求或更多需求变化的项目,如互联网项目,MyBatis将是一个很好的选择。
我的冬眠和冬眠有什么不同?
1.与hibernate不同,myatis不完全是ORM框架,因为myatis要求程序员自己编写Sql语句。
2.Mybatis直接编写原始sql,可以严格控制sql的执行性能,具有很高的灵活性。它非常适合对关系数据模型要求较低的软件开发,因为这类软件的需求变化频繁,一旦需求发生变化,输出结果会很快。然而,灵活性的前提是mybatis不能实现数据库独立性。如果需要实现支持多个数据库的软件,需要定制多组sql映射文件,这需要很大的工作量。
3.hibernate具有很强的对象/关系映射能力和很好的数据库独立性。对于对关系模型要求较高的软件,如果使用Hibernate进行开发,可以节省大量代码,提高效率。
6、
{}和$ {}有什么区别?
{}是预编译的,$ {}是字符串替换。
八哥正在加工
当{},则
将{}替换为?编号,调用PreparedStatement的set方法赋值;
当Mybatis处理$ {}时,它会用变量值替换$ {}。
使用
{}可以有效防止SQL注入,提高系统安全性。
7.如果实体类中的属性名不同于表中的字段名,该怎么办?
类型1:字段名称的别名在查询的sql语句中定义,以使字段名称的别名与实体类的属性名称一致。
类型2:通过