MyBatis的使用
1、MyBatis是什么
View ------ Controller ----- Service ----- DAO ------ 数据库
jsp/HTML Servlet/SpringMVC Spring jdbc/dbutils/jdbctemplate/mybatis
mybatis实际上就是 DAO层的一个解决方案
学习过jdbc、dbutils、jdbcTemplate、Hibernate 那么为什么我们还要学习 mybatis呢
JDBC:代码非常复杂、速度快
Hibernate:代码精简、致命的缺点(速度慢)
dbutils、jdbcTemplate:框架都不算 只是对jdbc的一个简单的封装而已
mybatis:他是属于效率处于 JDBC和Hibernate之间
他的代码的复杂度也是趋于 JDBC和Hibernate之间
代码灵活、怎么写都是对的
iBatis和mybatis之间的关系是什么?
ibatis是以前的叫法 mybatis是现在的叫法
2、MyBatis能干什么
数据库的访问(CRUD)
整合缓存、还可以给类取别名、IBatis还提供了整合Spring的第三方的包
3、为什么要学习这个MyBatis
上面的理由已经很充分了
4、Mybatis的简单的使用
4.1、导包
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--第一步:导包-->
<!--下面就是iBatis的相关的包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!--mysql的驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.10</version>
</dependency>
<!--日志门面-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
4.2、编写mybatis.xml配置文件
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--这个文件的作用:简单的说就是对mybatis的全局配置-->
<configuration>
<!--
environments:环境 s 可以配置等多个环境
这里配置的环境是:数据库的连接信息
default:如果配置了多个环境 默认使用哪一个环境
-->
<environments default="mysql">
<!--配置一个环境:id:表示的是这个环境的名字
逻辑意义上是可以随便写的
-->
<environment id="mysql">
<!--配置的是事物的类型 默认配置JDBC就可以了 一般情况下使用的就是这个类型-->
<transactionManager type="JDBC"></transactionManager>
<!--这个配置的是数据源 这里你可以认为是固定写法-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql:///cd200101"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</dataSource>
</environment>
<!--这里是可以配置多个环境的 要使用哪一个环境那么就就配置上面的default就可以了 -->
<environment id="oracle">
<transactionManager type=""></transactionManager>
<dataSource type=""></dataSource>
</environment>
</environments>
<!--在全局配置文件中引入mapper.xml的配置文件-->
<mappers>
<mapper resource="UserMapper.xml"></mapper>
</mappers>
</configuration>
4.3、编写UserMapper.xml配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--nameSpace:命名空间 这个命名空间和其他的命名空间不能重复 一般情况下 实体Mapper
逻辑上是可以随便写的 但是实际上要见名之意
-->
<mapper namespace="UserMapper">
<!--insert&