MyBatis-Plus增删改查操作前提:
⾸先有个⼯程,
pom⽂件:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.0.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.24</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
配置:
server:
port:8888
servlet:
context-path: / #项⽬的上下⽂路径
spring:
datasource:
url: jdbc:mysql://localhost:3306/mp
username: root
password: root
driver-class-name: sql.cj.jdbc.Driver
# mybatis plus配置
mybatis-plus:
mapper-locations: classpath:/mybatis/*.xml#加载映射⽂件
type-aliases-package: cn.entity #别名搜索的包
configuration:
lazy-loading-enabled:true#打开懒加载
mysql面试题 增删改查
aggressive-lazy-loading:false#关闭积极懒加载
Employee类:
@Data
@TableName("tbl_employee")
public class Employee {
@TableId(type = IdType.AUTO)
private Integer id;
private String lastName;
private String email;strcmp函数功效
private Integer gender;
private Integer age;
@TableField(exist =false)
private Double salary;
}
EmployeeMapper类:
sqlserver2008在win10上安装@Mapper
public interface EmployeeMapper extends BaseMapper<Employee>{ }
MyBatisPlusConfig类:
@Configuration
public class MyBatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor(){
PaginationInterceptor page =new PaginationInterceptor();
return page;
}
}
Application启动类:
@SpringBootApplication
public class Application {
public static void main(String[] args){
SpringApplication.run(Application.class,args);
}
}
BaseMapper⽅法:
public interface BaseMapper<T>extends Mapper<T>{
/
**
* 插⼊⼀条记录
*
kindeditor编辑器的文件上传事件触发
* @param entity 实体对象
*/
int insert(T entity);
/**
* 根据 ID 删除
*
* @param id 主键ID
*/
int deleteById(Serializable id);
/**
* 根据 columnMap 条件,删除记录
*
* @param columnMap 表字段 map 对象
*/
*/
int deleteByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
/**
* 根据 entity 条件,删除记录
*
* @param wrapper 实体对象封装操作类(可以为 null)
*/
int delete(@Param(Constants.WRAPPER) Wrapper<T> wrapper);
/**
* 删除(根据ID 批量删除)
*
* @param idList 主键ID列表(不能为 null 以及 empty)
*/
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<?extends Serializable> idList);
/**
* 根据 ID 修改
*
* @param entity 实体对象
*/
int updateById(@Param(Constants.ENTITY) T entity);
/**
* 根据 whereEntity 条件,更新记录
*
* @param entity        实体对象 (set 条件值,可以为 null)
* @param updateWrapper 实体对象封装操作类(可以为 null,⾥⾯的 entity ⽤于⽣成 where 语句)
*/
int update(@Param(Constants.ENTITY) T entity,@Param(Constants.WRAPPER) Wrapper<T> updateWrapper);
/**
* 根据 ID 查询
*
* @param id 主键ID
*/
T selectById(Serializable id);
/**
* 查询(根据ID 批量查询)
*
* @param idList 主键ID列表(不能为 null 以及 empty)
*/
List<T>selectBatchIds(@Param(Constants.COLLECTION) Collection<?extends Serializable> idList);
/**
stowed
* 查询(根据 columnMap 条件)
*
* @param columnMap 表字段 map 对象
*/
List<T>selectByMap(@Param(Constants.COLUMN_MAP) Map<String, Object> columnMap);
/**
* 根据 entity 条件,查询⼀条记录
*
* @param queryWrapper 实体对象封装操作类(可以为 null)
*/
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
/**
* 根据 Wrapper 条件,查询总记录数
*
* @param queryWrapper 实体对象封装操作类(可以为 null)
*/
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
/**
* 根据 entity 条件,查询全部记录
*
* @param queryWrapper 实体对象封装操作类(可以为 null)
*/
*/
List<T>selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
/**
* 根据 Wrapper 条件,查询全部记录
*
* @param queryWrapper 实体对象封装操作类(可以为 null)
*/
List<Map<String, Object>>selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
/**
* 根据 Wrapper 条件,查询全部记录
* <p>注意:只返回第⼀个字段的值</p>
*
* @param queryWrapper 实体对象封装操作类(可以为 null)
*/
List<Object>selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
/**
* 根据 entity 条件,查询全部记录(并翻页)
*
* @param page        分页查询条件(可以为 RowBounds.DEFAULT)
* @param queryWrapper 实体对象封装操作类(可以为 null)
*/
<E extends IPage<T>> E selectPage(E page,@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
/**
* 根据 Wrapper 条件,查询全部记录(并翻页)
*
* @param page        分页查询条件
* @param queryWrapper 实体对象封装操作类
*/
<E extends IPage<Map<String, Object>>> E selectMapsPage(E page,@Param(Constants.WRAPPER) Wrapper<T> queryWrapper); }
测试类:
@SpringBootTest
@RunWith(SpringRunner.class)
public class EmployeeMapperTest {
private static final Logger log = Logger(EmployeeMapperTest.class);
@Autowired
private EmployeeMapper employeeMapper;
/**
* 增加
*/
@Test
public void insertTest(){
Employee employee =new Employee();
employee.setLastName("哈哈哈");
employee.setAge(22);
employee.setGender(2);
clip数据库
employee.setEmail("hahaha@do1");
employee.setSalary(20000.0);
Integer result = employeeMapper.insert(employee);
System.out.println("result="+ result);
log.info("employee:{}", employee);
//获取当前数据在数据库中的主键值
Integer id = Id();
System.out.println(id);
}
/**
* 更新
* 更新
*/
@Test
public void updateTest(){
Employee employee =new Employee();
employee.setId(7);
employee.setLastName("hello");
employee.setAge(21);
employee.setEmail("hello@do1");
employee.setSalary(30000.0);
employee.setGender(1);
Integer result = employeeMapper.updateById(employee);
System.out.println("result:"+ result);
log.info("employee:{}", employee);
}
/**
* 查询
*/
@Test
public void selectTest(){
//1、通过id查询
Employee employee = employeeMapper.selectById(7);
System.out.println(employee);
//2、通过多个列进⾏查询 id+lastName
Employee employee1 =new Employee();
employee1.setId(7);
employee1.setLastName("hello");
Wrapper<Employee> wrapper =new QueryWrapper<>(employee1);
Employee result = employeeMapper.selectOne(wrapper);
System.out.println("result:"+ result);
//3、通过多个id进⾏查询
List<Integer> list =new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
List<Employee> employeeList = employeeMapper.selectBatchIds(list);
System.out.println(employeeList);
//4、通过Map封装条件查询
Map<String, Object> columnMap =new HashMap<>();
//注意这⾥的key是列名,⽽不是对象的属性名
columnMap.put("last_name","hello");
columnMap.put("gender",1);
List<Employee> emps = employeeMapper.selectByMap(columnMap);
System.out.println(emps);
//5、分页查询
Page<Employee> employees = employeeMapper.selectPage(new Page<>(3,2),null);
System.out.println("数据为:"+ Records());
System.out.println("总数为:"+ Total()+",总页数为:"+ Pages());        System.out.println("当前页为:"+ Current()+",每页限制:"+ Size()); }
/**
* 删除
*/
@Test
public void deleteTest(){
//1、根据id进⾏删除
Integer result = employeeMapper.deleteById(8);
System.out.println("result: "+ result);
//2、根据条件进⾏删除

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。