一、传统jdbc 的问题。
1、数据库没有连接池,每次请求都会重新创建。
mybatis:使用线程池
2、sql语句是写死在代码中,不利于代码维护。
mybatis:在xml中配置
3、preparedStatement 中的设置的参数也是写的死,同样不利于维护。
mybatis:在xml中配置
4、数据从数据库获取后,读取方式同样是写死的。
mybatis:自动映射。
二、MyBatis和 hibernate本质上的区
hibernate: 是一个标准的 ORM 框架(对象关系映射)。学生成本较高,不需要编写sql语句,SQL语句自动生成。对于sql语句的优化,修改比较困难。
应用场景:
适合用于sql语句简单的,效率要求不是特别高的项目。
Mybatis: 专注于sql语句,对象映射和输入输出,都由框架帮你完成,所以属于半 ORM系统,
适用场景:
sql语句逻辑复杂,效率要求特别高的应用。