参考视频教程:
https://www.bilibili.com/video/av69742084
环境组成:
IDEA
JDK1.8
MySQL
Maven
演示的数据:
create database mybatis;
use mybatis;
create table user(
id int(20) not null primary key,
name varchar(30) default null,
password varchar default null
)engine=innodb default charset=utf8;
insert into user(`id`,`name`,`password`) values
(1,"张三","123456"),
(2,"李四","234567"),
(3,"王五","345678"),
(4,"钱六","456789");
在IDEA创建新的Maven项目
不需要模版直接下一步,命名MybatisStudy
由于第一次创建Maven项目,这里要稍等下仓库包下载(无视即可,不妨碍)
在pom.xml中配置依赖库< dependencies >
Mybatis框架配置依赖:
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.2</version>
</dependency>
JDBC驱动配置依赖:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
单元测试依赖:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
删除SRC目录新建子模块01(右键项目 - new Module)
可以看到MS01的pom.xml模块多了父项目
父项目也配置了MS01子模块
只要父项目导入的依赖,子模块都可以继承使用到
后续的子模块不需要再重新配置依赖,沿用父项目的依赖即可
配置mybatis核心文件
src\main\resources\mybatis-config.xml
如果resources目录没有显示为源文件目录
右键该目录 Make Directory As -> sources root
配置信息
<?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>
<!-- 多环境配置 default默认选择当前为development -->
<environments default="development">
<environment id="development">
<!-- 事务管理类型:JDBC -->
<transactionManager type="JDBC"/>
<!-- 数据源类型:连接池 -->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8&useSSL=true&serverTimezone=GMT&useUnicode=true"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 映射器暂时还用不到
<mappers>
<mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>
-->
</configuration>
编写MybatisUtil工具类
src\main\java\util\MybatisUtil.java
编写对应的实体类和dao:
实体类User (略过)
src\main\java\pojo\User.java
dao:
src\main\java\dao\UserDao.java
在Mybatis中我们使用注解(暂且不谈)和xml配置实现dao
配置映射文件 UserMapper.xml:
src\main\java\dao\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">
<!--映射对应的接口 -->
<mapper namespace="dao.UserDao">
<!--接口对应的sql语句标签,id映射接口的方法名 resultType映射返回类型User -->
<select id="getAll" resultType="pojo.User">
select * from user ; //具体的sql语句
</select>
</mapper>
编写测试类开始测试:
可以从报错得知我们没有注册dao映射器
修改之前在mybatis-config.xml的配置(恢复之前注释掉的映射器,并写好映射的文件)
重新测试发现初始化异常
这是因为Maven无法识别在源码目录下的配置文件
我们需要在父项目的pom.xml配置此信息
<!--在build中配置resources,来防止我们资源导出失败的问题-->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
第三次测试,成功!
要注意的是,DaoMapper.xml配置文件不能有中文(注释中文都不可以有)
在mybatis-config.xml的映射器的resource属性必须使用 "/"分割路径
未完待续…