mybatis知识点

来源:互联网 发布:淘宝毕业论文多少钱 编辑:程序博客网 时间:2024/06/11 06:58

Mybatis

1、     mybatis和Hibernate的区别

mybatis是半自动的,Hibernate是全自动的

Hibernate可以完全通过对象关系模型实现对数据库的操作,拥有完整的javabean对象和数据库映射结构,自动生成sql语句。

Mybaits只是基于字段的映射,对象数据以及对象实际关系仍然需要手动的处理。

正因为如此,mybatisHibernate更关系细节

mybatis的sql都是写在xml配置文件当中,而Hibernate的sql很多都是自动生成,并不能直接控制,如果Hibernate要强行自己写sql,在开发模式上面与orm不同;当然Hibernate也可以使用hql,对细节进行优化,但是hql在功能上不及sql强大。

Hibernatemybatis的移植性髙

Hibernate利用他强大的映射结构和hql语句,大大降低了与数据库的耦合性;而mybatis需要手写sql,与数据库的耦合性直接关系到程序员sql的写法,如果sql不具有通用性的话,移植性就会大大降低

Hibernate适用的项目:OA项目,ERP项目

Mybatis适用的项目:电商项目

2、     mybatis使用@param注解

当以下面的方式进行写SQL语句时:

@Select("select column fromtable where userid = #{userid}")
public int selectColumn(int userid);

当你使用了使用@Param注解来声明参数时,如果使用 #{} 或 ${} 的方式都可以。

@Select("select column fromtable where userid = ${userid} ")
public int selectColumn(@Param("userid") int userid);

当你不使用@Param注解来声明参数时,必须使用使用 #{}方式。如果使用 ${} 的方式,会报错。

@Select("select column fromtable where userid = ${userid} ")
public int selectColumn(@Param("userid") int userid);