Java MyBatis

网友投稿 264 2022-11-27

Java MyBatis

目录1. MyBatisPlus 介绍2 .案例总结

1. MyBatisPlus 介绍

MyBatis-Plus(简称 MP),是一个 MyBatis 的增强工具包,只做增强不做改变. 为简化开发工作、提高生产率而生。

启动加载 XML 配置时注入单表 SQL 操作 ,为简化开发工作提供生产率而生。mybatis-plus 只做增强不做改变,这里不提倡 SQL 写在代码中。

我们来看看mybatis和mybatisPlus的区别 首先,看看图标

很明显,图标中小鸟只是眼罩发生了变化。接下来,我们看看功能方面的变化

在这里我们可以很明显的看到,mybatisPlus是在mybatis上进行了增强。

官网:https://mp.baomidou.com/

功能:

1、单表CURD (简单+批量)操作,自动完成。

2、分页插件,Count 查询自动或自定义SQL 查询。

3、Spring 根据不同环境加载不同配置支持。

使用:添加maven坐标,查看相关类,进行调用

mybatis-plus

maven 官方最新版本号为准

1、代码自动生成,查看类com.baomidou.mybatisplus.test.AutoGeneratorTest

2、使用方法,查看类com.baomidou.mybatisplus.test.UserMapperTest

2 .案例

我们先来创建表

创建一个springboot工程 ,pom文件

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter

org.springframework.boot

spring-boot-starter-test

test

mysql

mysql-connector-java

5.1.6

runtime

com.baomidou

mybatis-plus-boot-starter

3.4.3

junit

junit

test

核心配置文件

spring:

datasource:

driver-class-name: com.mysql.jdbc.Driver

url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8

username: root

password: 123456

mybatis-plus:

configuration:

log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #日志信息

写实体类

package com.liuhaiyang.entity;

import com.baomidou.mybatisplus.annotation.IdType;

import com.baomidou.mybatisplus.annotation.TableField;

import com.baomidou.mybatisplus.annotation.TableId;

import com.baomidou.mybatisplus.annotation.TableName;

@TableName(value = "t_student") //指定表的名称

public class Address {

/*

*指定主键的方式:使用@TableId注解

* value:指定主键字段的名称,如果主键字段的名称是id,value属性可以省略

* type:指定主键字段的类型,IdType.AUTO表示自动增长

*/

@TableId(value = "id",type = IdType.AUTO)

private Integer id;

//当属性名和字段名不一致时,指定属性和列名的对应关系(@TableField)value指列名

@TableField(value = "name")

private String name;

@TableField(value = "age")

private Integer age;

public Address() {

}

public Address(String name, Integer age) {

this.name = name;

this.age = age;

}

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public Integer getAge() {

return age;

}

public void setAge(Integer age) {

this.age = age;

}

@Override

public String toString() {

return "Address{" +

"id=" + id +

", name='" + name + '\'' +

", age=" + age +

'}';

}

}

编写mapper接口,让它继承MP框架中的BaseMapper接口。

package com.liuhaiyang.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import com.liuhaiyang.entity.Address;

public interface AddressMapper extends BaseMapper

}

mybatisPlus框架中的BaseMapper接口中定义了17个关于CRUD的操作方法。

能够满足我们对表的操作,如果我们需要的操作都在这里,可以不写mapper.xml配置文件

在SpringBoot项目的启动入口类上添加 @MapperScan 注解,确保扫描mapper包下所有mybatis、mybatis-plus相关的注解。

@SpringBootApplication

@MapperScan(value = "com.liuhaiyang.mapper") //扫描器

public class MybatisPlusApplication {

public static void main(String[] args) {

SpringApplication.run(MybatisPlusApplication.class, args);

}

}

我们在来测试一下,写一个测试类测试一下啊

insert操作

@SpringBootApplication

@MapperScan(value = "com.liuhaiyang.mapper") //扫描器

public class MybatisPlusApplication {

public static void main(String[] args) {

SpringApplication.run(MybatisPlusApplication.class, args);

}

}

update操作

@Test

public void updateaddress() {

Address address=new Address();

address.setId(10);

address.setName("赵六");

//判断字段是否会进行更新,依据字段是否为null,

//如果非null,则加入set语句中;为null,则不加入set语句

int rows=addressMapper.updateById(address);

System.out.println("update的结果是:" + rows);

}

select操作

@Test

public void selectaddress() {

Address rows=addressMapper.selectById(10);

System.out.println("select的结果是:" + rows);

}

delete操作

@Test

phttp://ublic void deleteaddress() {

int rows=addressMapper.deleteById(10);

System.out.println("delete的结果是:" + rows);

}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:dremio 的job 分析参考示例
下一篇:docker | jenkins 实现自动化部署项目,后端躺着把运维的钱挣了!(上)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~