什么是MyBatis
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,Mybatis 是一种“半自动化”的ORM实现。
再来说说什么是OMR
- ORM(对象关系映射):利用对象和数据库之间映射的数据,把Java程序中的对象持久化到数据库中的表内。
- 这里的“半自动化”,是相对 Hibernate 等提供了全面的数据库封装机制的“全自动化”ORM 实现而言,“全自动”ORM 实现了 POJO 和数据库表之间的映射,以及 SQL 的自动生成和执行。而 MyBatis 的着力点,则在于 POJO 与 SQL 之间的映射关系。也就是说,MyBatis 并不会为程序员在运行期自动生成 SQL 执行。具体的 SQL 需要程序员编写,然后通过映射配置文件,将 SQL 所需的参数,以及返回的结果字段映射到指定 POJO。使用 ibatis 提供的 ORM 机制,对业务逻辑实现人员而言,面对的是纯粹的 Java 对象,这一层与通过 Hibernate 实现 ORM 而言基本一致,而对于具体的数据操作,Hibernate会自动生成 SQL 语句,而 MyBatis 则要求开发者编写具体的 SQL 语句。相对 Hibernate 等“全自动”ORM 机制而言,ibatis 以 SQL 开发的工作量和数据库移植性上的让步,为系统设计提供了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,MyBatis 的出现显得别具意义。
我们可以再说一下mybatis的优缺点:
-
- 优点:1.简单易学
- 2.消除了大量的JDBC过多的代码
- 3.良好的性能
- 3.友好的Spring集成支持
- 4.友好的第三方缓存类库集成支持
- 缺点:1、编写SQL语句时工作量很大,尤其是字段多、关联表多时,更是如此。
- 2、SQL语句依赖于数据库,导致数据库移植性差,不能更换数据库。
- 3、缓存机制不佳
- 优点:1.简单易学
既然我们要用MyBaits链接数据库,所以需要一个数据库的驱动包,以及一个MyBatis源码包,(通过idea创建Maven项目)在pom.xml文件中引入需要的依赖。其中引入junit是便于后面的测试,而log4j则能看到一些日志信息,有时能为找bug提供帮助。
- <dependencies>
- <dependency>
- <!--日志文件所用的jar包-->
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <version>1.2.12</version>
- </dependency>
- <dependency>
- <!--mysql驱动包-->
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.28</version>
- </dependency>
- <dependency>
- <!--mybatisjar包-->
- <groupId>org.mybatis</groupId>