当前位置: 首页 > 图灵资讯 > java面试题> javaspring面试题-@SpringMybatis

javaspring面试题-@SpringMybatis

来源:图灵教育
时间:2024-05-21 13:44:40

 

@Insert :插入sql ,和xml insert sql语法完全一样@Select :查询sql, 和xml select sql语法完全一样@Update :更新sql, 和xml update sql语法完全一样@Delete :删除sql, 和xml delete sql语法完全一样@Param :入参@Results :设置结果集合@Result :结果@ResultMap :引用结果集合@SelectKey :获取最新插入id

Mybatis如何防止sql注入?简单的说就是#{}是经过预编译的,是安全的,**

**{}是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入。在编写mybatis的映射语句时,尽量采用**“#{xxx}”**这样的格式。如果需要实现动态传入表名、列名,还需要做如下修改:添加属性**statementType="STATEMENT"**,同时sql里的属有变量取值都改成****{}是未经过预编译的,仅仅是取变量的值,是非安全的,存在SQL注入。在编写mybatis的映射语句时,尽量采用**“#{xxx}”**这样的格式。如果需要实现动态传入表名、列名,还需要做如下修改:添加属性**statementType="STATEMENT"**,同时sql里的属有变量取值都改成**{xxxx}**

Mybatis和Hibernate的区别

Hibernate 框架:

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,建立对象与数据库表的映射。是一个全自动的、完全面向对象的持久层框架。

Mybatis框架:

Mybatis是一个开源对象关系映射框架,原名:ibatis,2010年由谷歌接管以后更名。是一个半自动化的持久层框架。

区别:

开发方面

在项目开发过程当中,就速度而言:

hibernate开发中,sql语句已经被封装,直接可以使用,加快系统开发;

Mybatis 属于半自动化,sql需要手工完成,稍微繁琐;

但是,凡事都不是绝对的,如果对于庞大复杂的系统项目来说,复杂语句较多,hibernate 就不是好方案。

sql优化方面

Hibernate 自动生成sql,有些语句较为繁琐,会多消耗一些性能;

Mybatis 手动编写sql,可以避免不需要的查询,提高系统性能;

对象管理比对

Hibernate 是完整的对象-关系映射的框架,开发工程中,无需过多关注底层实现,只要去管理对象即可;

Mybatis 需要自行管理映射关系;