Mybatis-XML映射文件

Mybatis-XML映射文件

在这里插入图片描述

  • XML文件的名称与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">
  • 接下来我们就可以在映射文件中定义sql语句了
    在mapper接口中定义一个方法:
    在这里插入图片描述
package com.csdn.mapper;

import com.csdn.pojo.Emp;
import org.apache.ibatis.annotations.*;

import java.time.LocalDate;
import java.util.List;

@Mapper
public interface EmpMapper {
    //根据ID删除数据
    @Delete("delete from emp where id =#{id}")
    /*public void delete(Integer id);*/
    public int delete(Integer id);

    //新增员工
    @Options(keyProperty = "id", useGeneratedKeys = true)//会自动将生成的主键值,赋值给emp对象的id属性
    @Insert("insert into emp(username, name, gender, image, job, entrydate, dept_id, create_time,update_time) " +
            "value (#{username}, #{name}, #{gender}, #{image}, #{job}, #{entrydate}, #{deptId}, #{createTime}, #{updateTime})")
    public void insert(Emp emp);


    //更新员工
    @Update("update emp\n" +
            "set username=#{username},\n" +
            "    name=#{name},\n" +
            "    gender=#{gender},\n" +
            "    image=#{image},\n" +
            "    job=#{job},\n" +
            "    entrydate=#{entrydate},\n" +
            "    dept_id=#{deptId},\n" +
            "    update_time=#{updateTime}\n" +
            "where id = #{id};\n")
    public void update(Emp emp);


   
  /*  //根据id查询员工
    @Select("select * from emp where id=#{id}")
    public Emp getById(Integer id);*/


    //方案一:给字段起别名,让别名与实体类属性一致
    /*  @Select("select id, username, password, name, gender, image, job, entrydate, dept_id deptId, create_time createTime, update_time updateTime from emp where id=#{id}")
  public Emp getById(Integer id);*/


    //方案二:通过@Results,@Result注解手动映射封装
    /*    @Results({
            @Result(column = "dept_id",property = "deptId"),
            @Result(column = "create_time",property = "createTime"),
            @Result(column = "update_time",property = "updateTime")
    })
    @Select("select * from emp where id=#{id}")
    public Emp getById(Integer id);*/

    //方案三:开启mybatis的驼峰命名自动映射开关
    @Select("select * from emp where id=#{id}")
    public Emp getById(Integer id);






    //条件查询员工
    //方式一:
/*   @Select("select *\n" +
           "from emp\n" +
           "where name like '%${name}%'\n" +
           "  and #{gender} = 1\n" +
           "  and entrydate between #{begin} and #{end}\n" +
           "order by update_time desc;")
   public List<Emp> listEmp(String name, Short gender, LocalDate begin,LocalDate end);*/

    //方式二:
   /* @Select("select *\n" +
            "from emp\n" +
            "where name like concat('%',#{name},'%')\n" +
            "  and gender= #{gender}\n" +
            "  and entrydate between #{begin} and #{end}\n" +
            "order by update_time desc;")
    public List<Emp> listEmp(String name,Short gender, LocalDate begin, LocalDate end);*/

    //通过xml配置文件来配置sql语句(条件查询员工)
    public List<Emp> listEmp(String name,Short gender, LocalDate begin, LocalDate end);
}

在xml文件中写sql语句
在这里插入图片描述

<?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.csdn.mapper.EmpMapper">
    <!--resultType:单条记录所封装的类型-->
    <select id="listEmp" resultType="com.csdn.pojo.Emp">
        select *
        from emp
        where name like concat('%', #{name}, '%')
          and gender = #{gender}
          and entrydate between #{begin} and #{end}
        order by update_time desc;
    </select>
</mapper>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zkzap

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值