基于代理 Dao 实现 CRUD 操作 及 Mybatis 的参数深入 与 Mybatis 的输出结果封装

本文介绍了在 Mybatis 中如何基于代理 Dao 实现 CRUD 操作,详细讲解了配置要求,如持久层接口与映射配置的位置,以及 mapper 标签的命名规则。讨论了通过 Pojo 类传递复杂查询条件,以 QueryVo 为例展示了如何编写包装对象。同时,阐述了 resultType 和 parameterType 的作用,以及 #{} 占位符的使用,包括 OGNL 表达式的概念和应用。最后提到了测试类的编写,完整内容可参见原文链接。
摘要由CSDN通过智能技术生成

使用要求:

1、持久层接口和持久层接口的映射配置必须在相同的包下

2、持久层映射配置中 mapper 标签的 namespace 属性取值必须是持久层接口的全限定类名

3、SQL 语句的配置标签<select>,<insert>,<delete>,<update>的 id 属性必须和持久层接口的方法名相同。

传递 pojo 包装对象

开发中通过 pojo 传递查询条件 ,查询条件是综合的查询条件,不仅包括用户查询条件还包括其它的查询条件(比如将用户购买商品信息也作为查询条件),这时可以使用包装对象传递输入参数。

Pojo 类中包含 pojo。

需求:根据用户名查询用户信息,查询条件放到 QueryVo 的 user 属性中。

编写 QueryVo

package com.xinghua.domain;

public class QueryVo {
    private User user;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}

在持久层接口中添加【各种】方法

package com.xinghua.dao;

import com.xinghua.domain.User;
import com.xinghua.domain.QueryVo;

import java.util.List;

/**
 * 用户的持久层接口
 */
public interface IUserDao {
    /**
     * 查询所有操作
     * @return
     */
    List<User> findAll();

    /**
     * 保存用户
     * @param user
     */
    void saveUser(User user);

    /**
     * 更改用户及信息
     * @param user
     */
    void updateUser(User user);

    /**
     * 根据Id删除用户
     * @param userId
     */
    void deleteUser(Integer userId);

    /**
     * 根据id查询用户信息
     * @param userId
     * @return
     */
    User findById(Integer userId);

    /**
     * 根据名称模糊查询用户信息
     * @param username
     * @return
     */
    List<User> findByName(String username);

    /**
     * 查询使用聚合函数
     * 查询总用户数
     * @return
     */
    int findTotal();

    /**
     *根据queryVo中的条件查询用户
     * @param vo
     * @return
     */
    List<User> findUserByVo(QueryVo vo);
}

在用户的映射配置文件中配置

<?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.xinghua.dao.IUserDao">

    <!-- 建立 User 实体和数据库表的对应关系
        type 属性:指定实体类的全限定类名
        id 属性:给定一个唯一标识,是给查询 selec
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值