重点:增删改需要提交事务

1 namespace

namespace中的包名要和Mapper接口的包名一致
image.png

2 select

选择,查询语句。
id:就是对应的namespace中的方法名;
resultType:SQL语句执行的返回值;
parameterType:参数类型;

步骤详解

  1. 编写接口;

    1. public interface UserMapper {
    2. //根据ID查询用户
    3. User getUserById(int id);
    4. }
  2. 编写对应的Mapper中对的SQL语句; ```xml <?xml version=”1.0” encoding=”UTF-8” ?> <!DOCTYPE mapper

    1. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    2. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<select id="getUserById" parameterType="int" resultType="xleixz.pojo.User">
    select *
    from mybatis.user
    where id = #{id}
</select>


3. 测试。(**增删改需要提交事务**)
```java
 //增删改需要提交事务
    //测试插入
    @Test
    public void addUser() {
        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.addUser(new User(4, "小雷", "123456"));

        //提交事务
        sqlSession.commit();

        //关闭SqlSession
        sqlSession.close();

    }

3 insert

注意:增删改需要提交事务

<?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 namespace="xleixz.dao.UserMapper">

    <!--对象中的属性可以直接取出来-->
    <insert id="addUser" parameterType="xleixz.pojo.User">
        insert into mybatis.user(id, name, pwd)
        values (#{id}, #{name}, #{pwd})
    </insert>
  </mapper>

4 update

注意:增删改需要提交事务

<?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 namespace="xleixz.dao.UserMapper">

    <update id="updateUser" parameterType="xleixz.pojo.User">
        update mybatis.user
        set name = #{name},
            pwd  = #{pwd}
        where id = #{id}
    </update>
  </mapper>

5 delete

注意:增删改需要提交事务

<?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 namespace="xleixz.dao.UserMapper">

<delete id="deleteUser" parameterType="int">
        delete from mybatis.user
        where id = #{id}
    </delete>
  </mapper>

6 错误分析

标签不能匹配错,标签必须相对应,插入就插入,查询就查询。

resources文件夹下的xml中,mappers标签中的resource值中的不是.,而是/符号。

<!--每一个Mapper.xml都需要在Mybatis核心配置文件中注册!!-->
    <mappers>
        <mapper resource="xleixz/dao/UserMapper.xml"/>
    </mappers>

程序配置文件,必须符合规则!!

image.png
NullPointerException空指针异常报错,原因是没有注册到资源!!

输出的xml文件中存在中文乱码问题!

Maven资源无法导出问题,解决——>在Maven中加入build,详情见Maven资源无法导出