目录
一、核心配置文件
二、Mybatis映射文件
三、将映射文件配置到mybatis核心配置文件中
一、核心配置文件
Mybatis核心配置文件在resources资源目录下(如下图),其中主要核心是连接数据库的参数配置
下面代码就是核心配置文件的.xml例子
代码语言:javascript复制<?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>
<!-- 配置环境 -->
<environments default="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:///mybatis"/>
<property name="username" value="root"/>
<property name="password" value="666666"/>
</dataSource>
</environment>
</environments>
</configuration>
这四行其实就是JDBC建立连接时要用到的驱动,url,用户名和密码 <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///mybatis"/> <property name="username" value="root"/> <property name="password" value="666666"/>
二、Mybatis映射文件
这个映射文件就和项目的持久层接口对应,一个持久层接口对应一个映射文件,注意:持久层接口所在的目录和映射文件所在的目录必须一致,如下图,否则将不能识别该映射文件。
下面代码是映射文件的一个 .xml例子
代码语言:javascript复制<?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="com.mybatisstudy.mapper.UserMapper">
</mapper>
这里我原来没注意,那个DOCTYPE 后面跟着那个单词就是改xml标签的根标签的意思
映射文件注意事项:
- 映射文件要和接口名称相同。
- 映射文件要和接口的目录结构相同。
- 映射文件中namespace属性要写接口的全名。
- 映射文件中标签的id属性是接口方法的方法名。
- 映射文件中标签的resultType属性是接口方法的返回值类型。
- 映射文件中标签的parameterType属性是接口方法的参数类型。
- 映射文件中resultType、parameterType属性要写全类名,
- 如果是集合类型,则写其泛型的全类名。
这里比如说一个根据id查询指定用户
持久层接口的方法是 User findById(int id);
那么在映射文件中最对应的写法就是
代码语言:javascript复制<select id="findById" parameterType="int" resultType="com.mybatisstudy.pojo.User">
select * from user where id = #{id}
</select>
#{}是获取里面参数的值,resultType属性是接口方法的返回值类型这里就相当于返回值类型为User,parameterType属性是接口方法的参数类型这里就当于参数类型为int类型
三、将映射文件配置到mybatis核心配置文件中
代码语言:javascript复制<!-- 注册映射文件 -->
<mappers>
<mapper resource="com/mybatisstudy/mapper/UserMapper.xml"></mapper>
</mappers>