- 为什么要使用Hibernate与MyBatis?
以最简单的通过代码对一个数据库进行增删改为例子,通常精简后的代码如下情况:
//增加
public int insert(Category category) throws Exception{
String sql = "insert into category(cname) values('"+category.getCname()+"')";
return DbHelper.execute(sql);
}
//删除
public int delete(Long id) throws Exception{
String sql = "delete from category where id = " +id;
return DbHelper.execute(sql);
}
//修改
public int update(Category category) throws Exception{
String sql = "update category set cname='"+category.getCname()+"' where id="+category.getId();
return DbHelper.execute(sql);
}
这时我们可能会想:
把return DbHelper.execute(sql);给他抽出来;
并且能让这三种方法使用到所有表格的增删改中,而不只是category表中。
这个时候我们就需要用到Hibernate与MyBatis了
- Hibernate与MyBatis的共同点?
都是用来构建自己的通用数据访问。
- Hibernate与MyBatis的区别?
Hibernate
- 描述实体类和表之间的对应关系,根据实体类获取表的信息(表名,字段名等)。
- 自动生成sql语句。
- 用于企业内部。
MyBatis
- sql语句配置在配置文件中。
- 不自动生成sql语句。
- 用于互联网项目。
- 为什么现在MyBatis使用的更多?
基于MyBatis不自动生成sql语句的特点,程序员可以进一步优化其代码。而Hibernate不能确定生成的代码是最优的。所以现在使用的更多的是MyBatis。