编写实体类
根据主键查询时必须有@Id,否则会报错
package com.hrp.domain;
import lombok.Data;
import tk.mybatis.mapper.annotation.KeySql;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.Date;
/**
* @author hrp
* @date 2020/2/7 22:11
*/
@Data
@Table(name = "user")
public class User {
@Id
@KeySql(useGeneratedKeys = true)
private Long id;
private String username;
private String password;
private String name;
private Integer gender;
private Date birthday;
private String phone;
private String picture;
private String address1;
private String address2;
private String address3;
private Integer power;
}
增删改查操作
select
- 根据实体中的属性值进行查询
List<T> select(T record);
- 根据主键字段进行查询,参数必须包含完整的主键属性
T selectByPrimaryKey(Object key);
- 查询全部结果
List<T> selectAll();
- 根据实体中的属性进行查询,只能有一个返回值,有多个结果会抛出异常
T selectOne(T record);
- 根据实体中的属性查询总数
int selectCount(T record);
insert
- 保存一个实体,null的属性也会保存,不会使用数据库默认值
int insert(T record);
- 保存一个实体,null的属性不会保存,会使用数据库默认值
int insertSelective(T record);
update
- 根据主键更新实体全部字段,null值会被更新
int updateByPrimaryKey(T record);
- 根据主键更新属性不为null的值
int updateByPrimaryKeySelective(T record);
delete
- 根据实体属性作为条件进行删除
int delete(T record);
- 据主键字段进行删除,方法参数必须包含完整的主键属性
int deleteByPrimaryKey(Object key);
使用流程
编写Common类
package com.hrp.common;
import tk.mybatis.mapper.additional.idlist.IdListMapper;
import tk.mybatis.mapper.additional.insert.InsertListMapper;
import tk.mybatis.mapper.annotation.RegisterMapper;
import tk.mybatis.mapper.common.Mapper;
/**
* 这是我们自己写的通用类,本质就是一个工具类,T为实体泛型,D为实体主键泛型
* @author hrp
* 2020/2/22 15:34
*/
@RegisterMapper
public interface BaseMapper<T,D> extends Mapper<T>, IdListMapper<T,D>, InsertListMapper<T> {
}
编写Mapper层接口
package com.hrp.mapper;
import com.hrp.common.BaseMapper;
import com.hrp.domain.User;
import org.apache.ibatis.annotations.Mapper;
/**
* 这里需要注意几个点,同样是导包问题
* 第一:@Mapper注解的包是ibatis的
* 第二:这里的BaseMapper是我们自己写的那个,不是tk.mybatis(通用Mapper)的
* @author hrp
* @date 2020/2/7 22:16
*/
@Mapper
public interface UserMapper extends BaseMapper<User,Long> {
}
编写Service层接口
package com.hrp.service;
import com.hrp.domain.User;
import java.util.List;
/**
* @author hrp
* 2020/2/22 14:44
*/
public interface UserService {
/**
* 查找所有用户信息
* @return
*/
List<User> findAll();
}
编写ServiceImpl实现类
package com.hrp.service.impl;
import com.hrp.domain.User;
import com.hrp.mapper.UserMapper;
import com.hrp.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author hrp
* 2020/2/22 14:47
*/
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> findAll() {
return userMapper.selectAll();
}
}
编写Controller类
package com.hrp.web;
import com.hrp.domain.User;
import com.hrp.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @author hrp
* 2020/2/22 14:48
*/
@RestController
@RequestMapping("user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("list")
public ResponseEntity<List<User>> findAll(){
return ResponseEntity.ok(userService.findAll());
}
}
参考博文1:juejin.cn/post/684790…
作者:山海_
参考博文2:juejin.cn/post/698469…
作者:知其白