jdbc和mybatis的区别
mybatis也是基于JDBC的。Java与数据库操作仅能通过JDBC完成。 mybatis也要通过JDBC完成数据查询、更新这些动作。
mybatis仅仅是在JDBC基础上做了,OO化、封装事务管理接口这些东西。
JDBC是地基,mybatis/Hibernate 是两栋外形各自有特点的楼房,楼房之间可以比较!地基就这一种。
其他拓展
传统JDBC操作数据
- 使用JDBC编程需要连接数据库,注册驱动和数据库信息
- 操作Connection,打开 Statement 对象 。
- 通过Statement执行SQL, 返回结果到ResultSet对象。
- 使用ResultSet读取数据,然后通过代码转化为具体的POJO对象。
- 关闭数据库的相关资源。
jdbc存在弊端:
- 工作量相对较大,每次都要去创建,关闭,获取
- JDBC编程可能产生的异常进行捕捉处理并正确关闭资源
对象关系映射(Object Relational Mapping)简称 ORM
ORM模型就是数据库的表和简单Java对象(Plain Ordinary Java Object,简称POJO)的映射关系模型。
ORM模型提供了统一的规则使得数据库的数据通过配置便可轻易的映射到POJO上
常见的有两种
mybatis
- 易于上手和掌握。
- sql写在xml里,便于统一管理和优化。
- 解除sql与程序代码的耦合。
- 提供映射标签,支持对象与数据库的orm字段关系映射
- 提供对象关系映射标签,支持对象关系组建维护
- 提供xml标签,支持编写动态sql。
hibernate
- 消除了代码的映射规则,它全部被分离到XML或者注解里面去配置。
- 无需再管理数据库连接,它也配置到XML里面。
- 一个会话中,不要操作多个对象,只要操作Sesison即可。
- 关闭资源只需要关闭一个Session即可。