首页 专题 文章 代码 归档
Mybatis映射文件-基本增删改查
2020.02.05 18:41 2020.02.05 18:41

1. 映射文件

  • cache – 给定名称空间的缓存配置。
  • cache-ref – 从另一个名称空间引用缓存配置。
  • resultMap – 最复杂和功能最强大的元素,它描述如何从数据库结果集中加载对象。
  • parameterMap – 不推荐使用! 老式的参数映射方式。 首选内联参数,将来可能会删除此元素。 此处未记录。
  • sql – SQL的可重用块,可以由其他语句引用。
  • insert – 映射的INSERT语句。
  • update – 映射的UPDATE语句。
  • delete –映射的DELETE语句。
  • select – 映射的DELETE语句。

2. 测试增删改

2.1. 接口文件

package com.misiai.dao;

import com.misiai.bean.Employee;

public interface EmployeeMapper {

    public Employee findById(Integer id);

    public Boolean insert(Employee employee);

    public Boolean update(Employee employee);

    public Boolean deleteById(Integer id);
}

2.2. 映射文件

<?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.misiai.dao.EmployeeMapper">
    <!--namespace:命名空间
        id:唯一标识
        resultType:返回值类型
        #{id}:从传递过来的参数中获取一个值,可理解为以前的占位符。
    -->
    <select id="findById" resultType="employee">
        select * from employee where id=#{id};
    </select>

    <insert id="insert" parameterType="com.misiai.bean.Employee">
        insert into employee (last_name, email, gender) values (#{lastName},#{email},#{gender});
    </insert>
    <update id="update" parameterType="com.misiai.bean.Employee">
        update employee set last_name=#{lastName},email=#{email},gender=#{gender}
        where id=#{id}
    </update>
    <delete id="deleteById" parameterType="java.lang.Integer">
        delete from employee where id =#{id}
    </delete>
    <!--
        public Boolean insert(Employee employee);

    public Boolean update(Employee employee);

    public Boolean deleteById(Integer id);

    -->
</mapper>

2.3. 测试文件

/**
 * 测试基本增删改
 */
@Test
public void test03() throws IOException {
    SqlSession sqlSession = getSqlSession();
    EmployeeMapper mapper = sqlSession.getMapper(EmployeeMapper.class);
    Employee employee = new Employee("Kuan", "hello@misiai.com", "男");

    // 测试增加
    // Boolean insert = mapper.insert(employee);
    // System.out.println("insert = " + insert);

    // 测试修改
    // employee.setLastName("Wudao");
    // employee.setId(3);
    // Boolean update = mapper.update(employee);
    // System.out.println("update = " + update);

    // 测试删除

    Boolean delete = mapper.deleteById(3);
    System.out.println("delete = " + delete);

    sqlSession.commit();//记得提交
}

以上是最基本的增删改,若涉及到复杂的应用场景,我们还需要进一步的学习。

3. 关于返回值类型

上面演示代码,我们都只是返回的Boolean类型,其实也可以返回Integer、Long类型的。

Mybatis会自动为我们封装:

对于有影响条数的操作(如Insert、Update),若果返回值是Boolean,那么大于0就是true;如果规定返回值是Integer,那么就是影响条数。

本节阅读完毕! (分享
二维码图片 扫描关注我们哟