前期准备
1.在maven中创建普通java项目
什么都不需要选,直接next即可
2.在pom.xml中添加打包方式
<packaging>jar</packaging>
3.导入mybatis、mysql、log4j、Junit坐标
<dependencies>
<!-- 导入mybatis坐标-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!-- 导入mysql坐标-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
<!-- 导入日志坐标-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
</dependency>
<!--导入单元测试坐标-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
</dependencies>
可能出现的问题:打上去一片红~~
原因:IDEA没有自动更新导入依赖的jar包
旧版IDEA可以通过勾选
这个来解决。
我使用的IDEA是没有这个选项的
新版IDEA解决方法
写完各种依赖后 点击
这个图标即可!!
环境搭建
一、根据表的信息
如
创建一个类
自动添加getter,setter和tostring即可
二、创建dao接口
三、创建主配值文件
创建名为sqlMapconfig的config配置文件,并对其进项相关配置
<?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">
<!--文件名叫SqlMapConfig没有别的含义 仅仅是习惯叫法-->
<!--mybatis的主配置文件-->
<configuration>
<!--配置环境-->
<environments default="mysql">
<!--配置mysql环境-->
<!---->
<environment id="mysql">
<!--配置事务的类型-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源(连接池)-->
<dataSource type="POOLED">
<!--配置连接数据库的四个基本信息-->
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatisstudy?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件-->
<mappers>
<mapper resource="com/tubai/dao/UserDao.xml"/>
</mappers>
</configuration>
四、创建映射配置文件
创建名为UserDao.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指的是你的dao接口-->
<mapper namespace="com.tubai.dao.UserDao">
<!--配置查询所有-->
<!--id填方法名称-->
<!--resultType写的是实体类的全路径-->
<select id="findAll" resultType="com.tubai.domain.User">
select * from user;
</select>
</mapper>
注意事项
-
在Mybatis中它把持久层的操作接口名称和映射文件也叫做:Mapper
==>所以名称叫UserDao 和叫 UserMapper是一样的 -
idea中创建目录的时候,它和包是不一样的
包在创建时:xxx.xxx.xxx它是三级结构
目录在创建时:xxx.xxx.xxx是一级目录因此创建目录需要多层 要么一次次创建
要么使用’/'分隔开(比如qa/qqa/qqqa) -
mybatis的映射配置文件位置必须和dao接口的包结构相同(比如我这都是com.tubai.dao)
-
映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名
-
映射配置文件的操作配置(比如之前写的select * from user),id属性的取值必须是dao接口的方法名
当我们遵从了第三,四,五点之后,我们在开发中就无须再写dao的实现类(Mybatis会解决的)