第一天——Mybatis增删改

Rowbed / 2024-03-14 / 原文

在接口映射中新增方法,UserMapper

public interface UserMapper {
    List<User> getUserList();
    User getUserById(int id);
    void addUser(User user);
    void delUser(int id);
}

在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">
<mapper namespace="com.example.Dao.UserMapper">
    <select id="getUserList" resultType="com.example.pojo.User">
       select * from mybatis.user;
    </select>

    <select id="getUserById" resultType="com.example.pojo.User" parameterType="int">
        select * from mybatis.user where id = #{id};
    </select>

    <insert id="addUser" parameterType="com.example.pojo.User">
        insert into mybatis.user (id,name,pwd) values (#{id},#{name},#{pwd});
    </insert>

    <delete id="delUser" parameterType="int">
        delete from mybatis.user where id=${id};
    </delete>
</mapper>

标签属性解析

属性 值的描述
id 接口的方法名
resultType 返回结果对象的全类名
parameterType 参数对象的全类名
#{XX}. XX为SQL的字段名 (忽略.)

如果出现异常

Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 7; columnNumber: 9; 1 字节的 UTF-8 序列的字节 1 无效。

因为该XML文件中的注释导致乱码了,要么修改encoding要么删除中文注释

对于上述的增删改操作。要求手动提交事务。

        SqlSession sqlSession = MybatisUtils.getSqlSession();
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.addUser(new User(4,"老六","55555"));
        sqlSession.commit();
        sqlSession.close();