为什么要使用Mybatis
传统的与数据库交互的步骤是首先注册驱动,获取连接,然后定义sql,根据sql获取PreparedStatement对象,sql参数赋值,执行sql,封装结果集,最后关闭资源。但是这繁琐的步骤中,哪些是重复性的代码,哪些又是我们真正需要关注的那?
首先,dao层中每个方法的sql语句肯定不相同,我们需要关注我们的sql语句是什么。其次,sql语句中的参数的值我们也需要自己提供。有了sql语句,框架就能执行sql。但如果是查询操作,查到的结果集封装到哪去?框架不知道,所以我们也要告知。其他重复性操作我们全部可以让框架来帮助我们做。
那么很清楚了,Mybatis框架的作用就是封装JDBC底层细节,简化我们的开发,避免书写重复的代码,让我们更专注于业务逻辑的实现。
Mybatis概述
Mybatis是一个基于java的持久层框架,三层模型中的位置如下。
Mybatis通过xml或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射为java对象对象并返回。
Mybatis采用了ORM(Object Relational Mapping,对象关系映射)思想解决了实体和数据库映射的问题,对jdbc进行了封装,屏蔽了jdbc api底层访问细节,使我们不用与jdbc api打交道,就可以完成对数据库的持久化操作。
ORM简单说:
把数据库表的字段与实体类属性对应起来。这样,操作实体类就可以实现操作数据库表。在mybatis中,通过配置的方法来建立它们之间的映射。
| User(domain) | User(Table) |
|---|---|
| user_id | id |
| user_name | name |
| user_age | age |