简便使用通用Mapper(没有任何sql语句)实现增删改查、分页 、多条件模糊搜索

前言

之前,在初学ssm框架的时候,曾经写过增删改查,还有多条件模糊搜索。
其用的原理是用同过配置mybatis来实现数据库操作,将数据库语句配置在xml里面。
那时候我就在想,这么简单的sql语句都要写,难道就没有人封装吗?

现在我就给大家推荐----Mapper 通用接口。他能简化数据库操作,不用让你在配置xml,其操作都已经被封装好了,可直接调用。
其包括增删改查,还有多条件模糊搜索

功能

1、增删改查
2、分页
3、多条件模糊搜索
4、多条件模糊分页搜索

使用(直接贴代码)

环境省略,实体类省略
(如果上面省略的还不会建议先老老实实的配置)

Mapper是接口来自

import tk.mybatis.mapper.common.Mapper;

在dao层 ,继承接口

public interface UserMapper extends Mapper<User> {}

在service层实现

package com.changgou.goods.service.impl;

import com.changgou.goods.dao.UserMapper;
import com.changgou.goods.pojo.User;
import com.changgou.goods.service.UserService;

import com.github.pagehelper.PageHelper;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;

import java.util.List;

/***
 * @author zzs
 */
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper UserMapper;


    /**
     * 查询User列表
     * @return list<User>
     */
    @Override
    public List<User> findAll() {
        return UserMapper.selectAll();
    }

    /***
     * 根据 主键d查询User
     * @param id
     * @return User
     */
    @Override
    public User findById(Integer id) {
        return UserMapper.selectByPrimaryKey(id);
    }

    /***
     * 添加
     * @param User 品牌
     *  带有Selective都会忽略空值
     */
    @Override
    public void add(User User) {
        UserMapper.insert(User);
    }

    /***
     * 根据主键 id 更改
     * @param User
     */
    @Override
    public void update(User User) {
        UserMapper.updateByPrimaryKeySelective(User);
    }

    /***
     * 根据 id删除
     * @param id
     */
    @Override
    public void delete(Integer id) {
        UserMapper.deleteByPrimaryKey(id);
    }


    /***
     * 多条件搜索
     * @param User
     * @return
     */
    @Override
    public List<User> fineList(User User) {
        Example example = createExample(User);
        return UserMapper.selectByExample(example);
    }

    /***
     * 分页查询
     * @param page  当前页
     * @param size  限制页数
     * @return
     */
    @Override
    public List<User> finePage(Integer page,Integer size) {
        /***
         * PageHelper 分页插件
         * 1第一个参数:当前页
         * 2第二个参数:限制页数
         * 之后紧跟着查询集合,自动开启分页
         */
        PageHelper .startPage(page,size);
        List<User> list = UserMapper.selectAll();
        return list;
    }

    /***
     * 多条件分页查询
     * @param User
     * @param page
     * @param size
     * @return
     */
    @Override
    public List<User> finePage(User User, Integer page, Integer size) {

        PageHelper.startPage(page,size);
        Example example = createExample(User);
        return UserMapper.selectByExample(example);
    }


    /***
     * 条件构造器
     * @param User
     * @return
     */
    public Example createExample(User User){
        Example example = new Example(User.class);
        Example.Criteria criteria = example.createCriteria();
        /***
         * Example 是自定义条件对象
         * criteria  是条件构造器
         * 上面形式 固定写法
         */

        if (User != null){
            /***
             * criteria 条件构造
             * property  数据库的属性名称
             * 第二个,传入sql语句的属性
             */
            if (!StringUtils.isEmpty(User.getName())){
                criteria.andLike("name","%"+User.getName()+"%");
            }
            if(!StringUtils.isEmpty(User.getLetter())){
                criteria.andEqualTo("letter",User.getLetter());
            }
        }
        return example;
    }
}

基本上,代码里面都有注解。

如果需要更详细的代码,可以私我。
请记得点个赞哦!

猜你喜欢

转载自blog.csdn.net/weixin_43157543/article/details/104655312
今日推荐