这里是代码加注释的teacherDAO接口代码和Mapper映射文件代码,一些讲解在注释里有:
TeacherDAO接口代码:
----------------------------------------代码开始----------------------------------------------
package com.dao;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Param;
import com.entity.Teacher;
public interface TeacherDAO {
//这里的注解必须存在,它帮助mapper映射文件识别
//如果是单个基本类型则不用写注解,多个基本类型也要写
public void add(@Param("tea") Teacher tea);
public List<Teacher> findAll();
//方法参数名在任何地方都是可以随便命名的
public Teacher getByIdAndName(Map map);
}
----------------------------------------代码结束----------------------------------------------
Mapper映射文件代码:
----------------------------------------代码开始----------------------------------------------
<?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.dao.TeacherDAO">
<!-- 注意返回类型resultType的设置 -->
<insert id="add">
insert into teacher values(null,#{tea.teaName},#{tea.teaAge})
</insert>
<!-- 这里返回类型不写集合,但要写完整类型名,基本类型可不写完整的 -->
<select id="findAll" resultType="com.entity.Teacher">
select * from teacher
</select>
<select id="getByIdAndName" resultType="com.entity.Teacher">
select * from teacher where teaId=#{teaId} and teaName=#{teaName}
</select>
</mapper>
<!--
1.单个参数
a.传入的是基本数据类型:参数名自定义(因为只有一个参数,不会混淆)
b.传入的是对象类型,可以用@Param起别名,然后mapper中用对象.属性,或者直接写对象的属性,不起别名也可以
2.多个参数
a.可以用下标表示,例如:#{0},#{1}
b.可以用参数关键字表示,例如:#{param1},#{param2}
c.用一个Map来装多个参数,取值的时候用的是key,#{key}
-->
----------------------------------------代码结束----------------------------------------------
至此,完毕。