1.什么是MyBatis?
Mybatis是一个半自动的ORM持久层框架,内部封装了JDBC。作为开发者只需要关注sql语句本身。Mybatis是通过xml或注解的方式将需要执行的各种statement配置起来。通过Java对象和statement中的sql动态参数映射生成最终执行的sql语句,最终由Mabtais框架执行sql并将结果映射为Java对象并返回。MyBatis 支持定制化 SQL、存储过程以及高级映射。MyBatis 是可以双向映射的,可以将数据集映射为Java对象,也可以将Java对象映射为数据库中的记录。
1.MyBatis优点
(1)简单易学,容易上手(相比于Hibernate) 基于SQL编程;
(2)JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接;
(3)很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数 据库MyBatis都支持,而JDBC提供了可扩展性,所以只要这个数据库有针对Java的jar包就可以就可以与MyBatis兼容),开发人员不需要考虑数据库的差异性。
(4)提供了很多第三方插件(分页插件 / 逆向工程);
(5)能够与Spring很好的集成;
(6)MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,解除sql与程序代码的耦合,便于统一管理和优化,并可重用。
(7)提供XML标签,支持编写动态SQL语句。
(8)提供映射标签,支持对象与数据库的ORM字段关系映射。
(9)提供对象关系映射标签,支持对象关系组建维护。
2.MyBatis缺点
(1)SQL语句的编写工作量较大,尤其是字段多、关联表多时,更是如此,对开发人员编写SQL语句的功底有一定要求。
(2)SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。
2.使用MyBatis的开发步骤
1.下载mybatis-3.5.1jar
去官网https://mybatis.net.cn/
2.将所需jar文件导入工程
如果使用 Maven 来构建项目,则需将下面的依赖代码置于 pom.xml 文件中:
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>x.x.x</version> </dependency>
3.编写MyBatis核心配置文件
1.编写一个MyBatis-config.xml文件
<?xml version="1.0" encoding="UTF-8" ?><!-- 文档声明 -->
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd"><!-- 约束声明 -->
<!-- mybatis的全局配置文件 -->
<configuration>
<properties resource=""></properties>
<typeAliases>
<package name=""/>
</typeAliases>
<!-- 配置mybatis的开发环境-->
<environments default="development">
<environment id="development">
<!-- 事务管理方式:
JDBC:将事务交给JDBC管理
MANAGED:自己管理事务
-->
<transactionManager type="JDBC"></transactionManager>
<!-- 配置数据源即连接池:
POOLED:使用连接池
UNPOOLED:不使用连接池
JNDI:已过时
-->
<dataSource type="POOLED">
<!-- com.mysql.jdbc.Driver -->
<property name="driver" value="${database.driver}"/>
<!-- jdbc:mysql:///demo?characterEncoding=utf-8 -->
<property name="url" value="${database.url}"/>
<!-- root -->
<property name="username" value="${database.username}"/>
<!-- root -->
<property name="password" value="${database.password}"/>
</dataSource>
</environment>
</environments>
<!-- 导入mapper.xml映射文件-->
<mappers>
<mapper resource=""></mapper>
</mappers>
</configuration>
注意顺序否则运行会报错
4.创建实体类(POJO)
1.创建一个pojo包里面放你自己的实体类
5.定义Dao层Mapper接口
1.创建一个Mapper包里面放你自己的接口
6.定义SQL映射文件
点击创建一个用驼峰命名法以你实体类名字开头并后面添加一个mapper文件名以.xml结尾
7.创建测试类
1.读取Mybatis核心配置文件
创建输入流可能会报一个异常错误,报异常后我们把异常继续抛出
2.创建SqlSessionFactory实例
3.创建SqlSession实例
4.创建Mapper实例执行SQL映射文件中的SQL语句
运行出来后记得关闭数据库