mybtis使用映射文件进行数据库操作

使用映射文件

(1) 准备工作
① 创建mappers目录
② 在application.properties中配置
mybatis.mapper-locations = classpath:mappers/*.xml

(2) 创建Mapper接口,编写对应的方法

ackage com.upc.mybatis_02.mapper;

import com.upc.mybatis_02.po.Salgrade;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface SalgradeMapper {
    
    public List<Salgrade> findAll();
}

(3) 编写映射文件,在其中编写对应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">
<!-- namespace 属性的值必须是对应接口的 包名.接口名称 -->
<mapper namespace="com.upc.mybatis_02.mapper.SalgradeMapper">
    <!-- 根据接口中的每一个方法进行sql的编写 -->
    <!--
        id属性对应接口中方法的名称
        parameterType属性表示方法的参数类型,如果没有参数就不写了
        resultType属性表示方法执行后的返回值类型,如果返回值类型
                为集合(List),那么resultType对应集合中的泛型类型
                例如 List<Emp>    resultType="Emp"
                通常 select标签必须有resultType属性
    -->
    <select id="findAll" resultType="com.upc.mybatis_02.po.Salgrade">
        select * from salgrade
    </select>
</mapper>

需要注意的问题:
A. 常用的节点
a) Select
b) Insert
c) Update
d) Delete
B. Select节点必须有resultType
C. Insert、delete、update必须提供parameterType
D. 标签中的id必须与接口中的方法名称相同
E. Mapper节点的namespace对应关联的接口

其他常用

  1. 动态sql:根据传递的参数是否有值,进行动态拼接,多条件组合查询
    (1) 常用节点
    ① If
    ② Choose
  1. When
    ③ Where
    ④ Set
    ⑤ Trim
    ⑥ Foreach
  1. 关联映射,表连接查询时封装数据

  2. Mybatis给po、dto包中的类设置别名
    (1) 在application.properties文件添加包别名设置
    mybatis.type-aliases-package=com.upc.mybatis_02.po,com.upc.mybatis_02.dto
    (2) 在映射文件中,使用类名即可
    没有使用别名以前
    resultType=”com.upc.mybatis_02.po.Emp”
    设置别名以后
    resultType=”Emp” 或者 resultType=”emp”

  3. 模糊查询
    列名 like ‘%值%’
    Select * from emp
    where ename like ‘%a%’
    %:表示任意个任意字符
    _:表示一个任意字符
    Ename like ‘_a%’

  4. 在mybatis的映射文件中不能使用 < 做小于比较,必须使用<代替
    小于 sal<5000 sal < 5000
    小于等于
    sal<= 5000 sal <= 5000

  5. 注意的问题
    (1) 映射文件的存放的位置
    Mybatis.mapper-locations = Classpath:mappers/*.xml
    (2) 映射文件中namespace的值必须是对应接口的位置
    (3) Select、insert、delete、update中的id属性对应接口中方法的名称
    (4) 映射文件中,${ }、#{ }、test=” ”其中的值都来自于类中的属性
    (5) 判断属性值是否为空
    Test=”属性名 != null and 属性名!= ‘’ ”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值