1、MyBatis是一个基于Java的持久层框架,而持久化是指数据从瞬时状态变为持久状态,持久层是完成持久化工作的代码块-Dao层。即,MyBatis帮助开发人员将数据存入数据库中和从数据库中取数据。通过框架可以减少重复代码,提高开发效率。MyBatis是一个半自动化的ORM框架。
2、MyBatis使用
>导包:
核心包:mybatis-3.2.7.jar
依赖包:
数据库驱动包:
>编写MyBatis的核心配置文件
<?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">
<configuration>
<!-- 通过读取配置文件db.properties,获取连接数据库时需要的参数
<properties resource="db.properties" />
此时在配置数据源dataSource时value值应该写为value="${driver}"
-->
<!-- 为指定类型指定别名 使得在mapper映射文件中可以简化引用
<typeAliases>
<typeAliases type="com.entity.Tea" alias="User" />
为某个包下的所有类指定别名,默认别名是对应的类名
<package name="com.entity" />
</typeAliases>
-->
<!-- environments 指mybatis可以配置多个环境 default指向默认环境
每个SqlSessionFactory对应一个环境environments
-->
<environments default="development">
<environment id="development">
<!-- 事务管理器:类型:JDBC和MANAGED -->
<transactionManager type="JDBC"/>
<!-- 数据源类型:
UNPOOLED这个类型的数据源实现只是在每次需要的时候简单地打开和关闭连接
POOLED连接池实现缓存JDBC连接对象,用于避免每次创建新的数据库连接时都初始化和进行认证,加快程序响应。
JNDI这个数据源的配置是为了准备与像Spring或应用服务器能够在外部或者内部配置数据源的容器一起使用,然后在JDN上下文中引用它
-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/shop?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="MySQL1003150748"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 定义映射SQL语句文件,可以有多个 -->
<mapper resource="com/myBatis/entity/tea.mapper.xml"/>
</mappers>
</configuration>
>创建sqlSessionFactory
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Re