在Mybatis中,Dao层又被叫做Mapper层,当我们编写Dao层的接口时,会同时编写一个同名的.xml配置文件,举个例子:
- 首先编写一个UserMapper接口
package com.yyl.dao;
import com.yyl.pojo.User;
import java.util.List;
import java.util.Map;
/**
* @Author: LongLongA
* @Description:
* @Date: Created in 16:13 2020/8/13
*/
public interface UserMapper {
//查询全部用户
List<User> getUserList();
//根据id查询用户
User getUserById(int id);
//新增一个用户
int addUser(User user);
//新增一个用户方法二:通过Map传值
int addUser2(Map<String,Object> map);
//修改一个用户
int updateUser(User user);
//删除一个用户
int deleteUserById(int id);
//分页
List<User> getUserByLimit(Map<String,Integer> map);
}
- 再在同包路径下建立同名的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绑定一个Dao(也可以叫做Mapper)接口-->
<!--一个mapper标签绑定一个dao接口-->
<mapper namespace="com.yyl.dao.UserMapper">
<!--
结果集映射:用来处理数据库字段与java类属性字段名不一致的情况
-->
<resultMap id="UserMap" type="User">
<!--column代表数据库中的字段,property代表java类的属性-->
<result column="password" property="password"/>
</resultMap>
<!--
查询语句,其中id代表接口的方法名
resultType代表返回值的类型(使用全类名,也可以在mybatis-config.xml中设置别名)
-->
<select id="getUserList" resultType="com.yyl.pojo.User">
select * from user
</select>
<select id="getUserById" parameterType="int" resultType="com.yyl.pojo.User">
select * from user where id = #{id}
</select>
<!--分页-->
<select id="getUserByLimit" parameterType="map" resultType="User">
select * from user limit #{startIndex},#{pageSize}
</select>
<insert id="addUser" parameterType="com.yyl.pojo.User">
insert into user(id,name,password) values(#{id},#{name},#{password})
</insert>
<!--这里填入的是map的键-->
<insert id="addUser2" parameterType="map">
insert into user(id,name,password) values(#{userId},#{userName},#{userPassword})
</insert>
<update id="updateUser" parameterType="com.yyl.pojo.User">
update user set name=#{name}, password=#{password} where id=#{id};
</update>
<delete id="deleteUserById" parameterType="int">
delete from user where id = #{id}
</delete>
</mapper>
附上结构图:
千万要注意的是,每次编写XXXMapper.xml时,都要在Mybatis-config.xml中注册,注册的方式也有好多种:
方式一:通过指定xml配置文件的路径(推荐使用)
<mappers>
<mapper resource="com/yyl/dao/UserMapper.xml"/>
</mappers>
方式二:使用Class文件绑定注册
<mappers>
<mapper class="com.yyl.dao.UserMapper"/>
</mappers>
这里需要注意,方式二的配置是有要求的:
- 接口和它的配置文件必须同名(接口叫UserMapper的话,配置文件也要叫UserMapper.xml)
- 接口和它的配置文件必须在同包下
方式三:使用包名绑定
<mappers>
<package name="com.yyl.dao"/>
</mappers>
这里的注意点与方式二一样