1.mybatis简介
1.1 mybatis本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。
mybatis是一个基于Java的持久层框架(半自动),主要包括SQL Maps和Data Access Objects(DAO)
1.2 MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。
MyBatis使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
1.3 每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。
SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
2.mybatis与hibernate的区别(面试题)
mybatis | hibernate | |
---|---|---|
相同点 | 两者均为ORM框架 | |
不同点 | 轻量级框架 | 重量级框架 |
半自动化(需要自己写sql) | 全自动化 | |
使用sql语言 | hql(也可以使用sql,但违背了hibernate 的初衷) | |
扩展性、迁移性比较差 | 无缝移植 |
3.简单使用
1、安装idea的插件 (Free mybatis plugin,Mybatis generator)
2、将对应的插件集成到maven工程中
<!-- 自动生成代码 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<dependencies>
<!--使用Mybatis-generator插件不能使用太高版本的mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.44</version>
</dependency>
</dependencies>
<configuration>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
3、使用插件对应的配置文件
jdbc.properties、驱动包、
实体类、mapper接口、mapper映射文件的存放位置需要配置、配置需要逆向生成代码的表
4、将mybatis的逆向生成代码的命令集成到maven
mybatis-generator:generate -e
mybatis的测试代码
hibernate.cfg.xml->sessionfactory->session->操作数据库
mybatis.cfg.xml->sqlsessionfactory->sqlsession->Mapper->操作数据库了
sqlsession.commit();