MyBatis XML语句

XML配置

要使用MyBatis的XML,首先得在application.properties文件中添加配置mybatis.mapper-locations,这个配置用于指定MyBatis Mapper XML文件路径,一般来说这个路径和DAO包路径一致,又因为代码以外的文件存放在resources文件目录下:

mybatis.mapper-locations=classpath:src/main/resources/com/youkeda/comment/dao/*.xml

com.youkeda.comment.dao是我的包名

MyBatis XML Mapper

一个DAO类对应一个DAO.xml文件,比如UserDAO.java对应UserDAO.xml
在这里插入图片描述

  1. 头信息
    创建完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">

  1. 有了头信息后继续添加mapper节点比如:
<?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.youkeda.comment.dao.UserDAO">

</mapper>

顺序不能错乱

namespace这个是命名空间的含义,一般是mapper所对应的DAO接口的全称

  1. resultMap
    用于处理表和DO对象的属性映射,确保表中每个字段都有属性可以匹配
<?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.youkeda.comment.dao.UserDAO">

  <resultMap id="userResultMap" type="com.youkeda.comment.dataobject.UserDO">
    <id column="id" property="id"/>
    <result column="user_name" property="userName"/>
  </resultMap>

</mapper>

resultMap节点在mapper根节点内

  • id
    唯一标示一般我们命名规则是xxxResultMap用于确保唯一
  • type
    对应的DO类完整路径

子节点

  • id
    设置数据库主键字段信息,column属性对应的表的字段名称,property对于的是DO属性名称

  • result
    设置数据库其他字段信息,column属性对应的表的字段名称,property对于的是DO属性名称

MyBatis XML Insert语句

首先新增一个add方法:

package com.youkeda.comment.dao;

import com.youkeda.comment.dataobject.UserDO;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface UserDAO {
    int add(UserDO userDO);
}

然后打开UserDAO.xml文件添加insert语句,在mapper节点下添加insert节点:

<insert id="add" parameterType="com.youkeda.comment.dataobject.UserDO" >
    INSERT INTO user (user_name, pwd, nick_name,avatar,gmt_created,gmt_modified)
    VALUES(#{userName}, #{pwd}, #{nickName}, #{avatar},now(),now())
  </insert>
  • id
    同DAO类的方法名,同一个xml内要唯一

  • parameterType
    用于传递参数类型,一般和方法的参数类型一致

如果同时获得插入的主键id值要配置useGeneratedKeys、keyProperty和@Options一样

MyBatis XML Update/Delete语句

在xml文件中添加update节点:

<update id="update" parameterType="com.youkeda.comment.dataobject.UserDO">
        update user set nick_name=#{nickName},gmt_modified=now() where id=#{id}
    </update>

在xml文件中添加delete节点:

 <delete id="delete">
        delete from user where id=#{id}
    </delete>

这里的delete节点并没有配置parameterType属性,因为;

int delete(@Param("id") long id);

这个方法的参数是由@Param注解组成,MyBatis默认的parameterType类型就是Map,所以可以省略

MyBatis XML Select语句

总结基于XML模式的开发顺序:

  1. 创建DO对象
  2. 创建DAO对象,配置@Mapper注解
  3. 创建XML文件,完成resultMap配置
  4. 创建DAO接口方法
  5. 创建相应的XML语句

在xml文件`增加select节点:

<select id="findAll" resultMap="userResultMap">
        select * from user
    </select>

    <select id="findByUserName" resultMap="userResultMap">
        select * from user where user_name=#{userName} limit 1
    </select>
    

这里多使用了一个属性resultMap这个值一般配置为该XML文件下的resultMap节点的id值

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

-irony-

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

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

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

打赏作者

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

抵扣说明:

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

余额充值