mapper映射文件***Mapper.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接口的动态代理方式开发(主流的Dao开发方式),开发规范是:-->
<!--1. 映射文件中配置的namespace必须是接口的类的全限定名-->
<!--2. 映射文件中配置的id必须和接口的方法名一致-->
<!--3. 映射文件中配置的parameterType必须和接口的方法参数类型一致-->
<!--4. 映射文件中配置的resultType必须和接口的方法返回值类型一致-->
<mapper namespace="com.mybatis.dao.UserDao">
<!-- 一般情况下,一个数据库表有一个对应的Mapper.xml映射 -->
<!-- id在编写的时候和数据库表名有关系 -->
<!-- - -分割线- -// -->
<!-- 根据id查询用户 -->
<!-- select:用户查询操作,标签内部配置的是sql语句 -->
<!-- id:statement的id,或者叫做sql的id -->
<!-- parameterType:参数的数据类型 -->
<!-- 参数的参数类型应该是全路径类型java.lang.Integer,但是mybatis提供了全路径的简写方式 -->
<!-- resultType:设置返回值的数据类型(类型的全路径) -->
<!-- #{id}:相当于操作数据库的?占位符,传输单个简单类型值,{}里面是任意值,但是不能空着不写 -->
<select id="queryUserById" parameterType="int" resultType="com.crud.pojo.User">
SELECT * FROM USER where id = #{id}
</select>
<!-- 根据用户名模糊查询出多个用户数据,方法一 -->
<!-- 返回的结果是List集合,ResultType里面应该配置集合中的元素 -->
<!-- 日志的输出内容 -->
<!--Preparing: SELECT * FROM `user` WHERE username LIKE ?-->
<!--Parameters: %丽%(String)-->
<select id="queryUserByName" parameterType="string" resultType="com.crud.pojo.User">
SELECT * FROM USER WHERE username LIKE #{username}
</select>
<!-- 根据用户名模糊好擦U型你出多个用户数据,方法二 -->
<!-- #{username} == ${value} -->
<!-- ${value}:就是sql语句的拼接,传输单个简单类型值,只能是value这个字符串 -->
<select id="queryUserByName2" parameterType="string" resultType="com.crud.pojo.User">
SELECT * FROM USER WHERE username LIKE '%${value}%'
</select>
<!-- 保存用户数据 -->
<!-- parameterType:参数类型,如果是简单数据类型,可以简写,如果是自定义对象,写全限定路径 -->
<!-- 如果参数类型不是简单数据类型,,#{}里面的值不能乱写,应该和pojo的属性名对应 -->
<!-- mybatis根据pojo的属性名把属性值进行注入 -->
<insert id="saveUser" parameterType="com.crud.pojo.User">
-- 需要用户保存成功后,返回自增主键
-- 使用selectKey:里面需要填写查询语句:select last_insert_id(); 也就是查询最后一个插入的id
-- keyProperty:pojo的哪个属性是主键
-- keyColumn:数据库查询结果的哪个属性是主键
-- resultType:返回主键的数据类型
-- order:查询主键应该在插入sql之前执行还是之后执行,AFTER:之后,BEFORE:之前
<selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
SELECT last_insert_id()
</selectKey>
INSERT INTO USER (
username,
birthday,
sex,
address
)
values(
#{username},
#{birthday},
#{sex},
#{address}
)
</insert>
<!-- 更新用户数据 -->
<!-- parameterType:请求参数类型 -->
<update id="