前言
之前,在初学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;
}
}
基本上,代码里面都有注解。
如果需要更详细的代码,可以私我。
请记得点个赞哦!