旅游电商网站建设方案,义乌网站建设方案详细,wordpress 后台404,公司网站怎么修改MyBatis-Plus简介 MyBatis-Plus#xff08;简称MP#xff09;是一个MyBatis的增强工具#xff0c;它在MyBatis的基础上进行了增强而不改变其原有的功能#xff0c;旨在简化开发、提高效率。以下是对MyBatis-Plus的详细简介#xff1a; 一、基本概述 定义#xff1a;MyBat…MyBatis-Plus简介 MyBatis-Plus简称MP是一个MyBatis的增强工具它在MyBatis的基础上进行了增强而不改变其原有的功能旨在简化开发、提高效率。以下是对MyBatis-Plus的详细简介 一、基本概述 定义MyBatis-Plus是在MyBatis基础上进行增强的一个框架通过提供一系列的特性和工具极大地简化了CRUD创建、读取、更新、删除操作和其他数据库交互的复杂性。 目标为开发者提供更加便捷、高效的数据库操作方式减少重复性代码编写提高开发效率。 二、主要特性 无侵入MyBatis-Plus的引入不会对现有工程产生影响它只做增强而不做改变使得集成和使用变得非常简单。 损耗小启动即会自动注入基本CRUD性能基本无损耗直接面向对象操作BaseMapper接口中包含了大量的基本CRUD方法。 强大的CRUD操作 内置通用Mapper和通用Service通过少量配置即可实现单表大部分CRUD操作。 强大的条件构造器支持链式调用满足各类复杂的查询需求。 支持Lambda形式调用通过Lambda表达式可以方便地编写各类查询条件无需担心字段写错。 支持主键自动生成支持多达4种主键策略包括分布式唯一ID生成器可自由配置完美解决主键问题。 支持ActiveRecord模式实体类只需继承Model类即可进行强大的CRUD操作。 内置代码生成器采用代码或Maven插件可快速生成Mapper、Model、Service、Controller层代码支持模板引擎提供了丰富的自定义配置选项。 内置分页插件基于MyBatis物理分页开发者无需关心具体操作配置好插件之后写分页等同于普通List查询。分页插件支持多种数据库。 内置性能分析插件可输出SQL语句及其执行时间帮助开发者快速定位慢查询。 内置全局拦截插件提供全表delete、update操作智能分析阻断功能也可自定义拦截规则预防误操作。 三、与MyBatis的区别 语法简化MyBatis-Plus通过使用注解和API简化了MyBatis的配置和操作减少了开发者的编码量。 自动代码生成MyBatis-Plus提供了代码生成器可以根据数据库表自动生成对应的实体类、Mapper接口和Mapper XML文件减少了手动编写的工作量。 分页插件MyBatis-Plus内置了分页插件而MyBatis本身需要手动编写分页逻辑。 条件查询MyBatis-Plus提供了强大的条件查询功能支持链式调用和Lambda表达式使得查询条件更加清晰易读。 四、应用场景 MyBatis-Plus广泛应用于各种需要数据库交互的Java项目中特别是在企业级应用开发中其强大的功能和便捷的操作方式极大地提高了开发效率。
综上所述MyBatis-Plus是一个功能强大、易于使用的MyBatis增强工具它通过提供一系列特性和工具简化了数据库操作提高了开发效率。 Lormbok简介 Lombok是一款Java编程工具其主要作用在于简化Java代码的编写提高开发效率。具体来说Lombok的作用可以归纳为以下几点
自动生成常用方法 Getter和Setter方法
通过在类的属性上添加Getter和Setter注解Lombok可以自动生成这些属性的getter和setter方法减少了手动编写这些方法的必要。 toString方法
ToString注解可以自动生成包含所有非静态属性名称和值的toString方法方便调试和日志记录。 equals和hashCode方法
EqualsAndHashCode注解可以自动生成equals和hashCode方法这对于需要将对象用作哈希表键或比较对象是否相等时非常有用。 自动生成构造函数 无参构造函数
NoArgsConstructor注解可以自动生成一个无参构造函数。 全参构造函数
AllArgsConstructor注解可以自动生成一个包含所有属性作为参数的构造函数简化了对象的创建过程。 Slf4j、Log4j2
等注解可以自动生成日志变量如log方便在代码中记录日志。 减少样板代码 Lombok通过自动生成这些常用的方法和构造函数显著减少了Java代码中的样板代boilerplate code使代码更加简洁和易于维护。 提高开发效率 开发人员可以专注于业务逻辑的实现而不是花费大量时间在编写和维护这些重复的代码上从而提高了开发效率。 需要注意的是Lombok仅在编译时起作用不会对运行时的代码产生影响。生成的代码会在编译时自动插入到编译后的类文件中。此外由于Lombok通过注解来工作因此它依赖于IDE如IntelliJ IDEA、Eclipse等中的Lombok插件来解析这些注解并生成相应的代码。
综上所述Lombok是一个强大的Java编程工具它通过自动生成常用方法和构造函数、支持建造者模式、提供日志支持等功能显著简化了Java代码的编写过程提高了开发效率。 五 、添加 关键依赖包
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.7.18/versionrelativePath/ !-- lookup parent from repository --/parentgroupIdcom.ktjiaoyu/groupIdartifactIdMyBatis-Plus/artifactIdversion0.0.1-SNAPSHOT/versionpackagingwar/packagingnameMyBatis-Plus/namedescriptionMyBatis-Plus/descriptionpropertiesjava.version1.8/java.version/propertiesdependenciesdependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.10/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.1.1/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.18/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion2.1.3/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-tomcat/artifactIdscopeprovided/scope/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-jpa/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.33/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdscopetest/scope/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin/plugins/build/project
} application.properties添加相关配置
spring.application.nameMyBatis-Plus
spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver
spring.datasource.urljdbc:mysql://localhost:3306/crm?useUnicodetruecharacterEncodingutf-8
spring.datasource.usernameroot
spring.datasource.password123456
spring.datasource.typecom.alibaba.druid.pool.DruidDataSourcespring.datasource.druid.initial-size3
spring.datasource.druid.min-idle3
spring.datasource.druid.max-active10spring.datasource.druid.max-wait60000spring.datasource.druid.stat-view-servlet.login-usernameadmin
spring.datasource.druid.stat-view-servlet.login-passwordadminspring.datasource.druid.filter.stat.log-slow-sqltrue
spring.datasource.druid.filter.stat.slow-sql-millis2000
#logging.level.rootwarn
#logging.level.com.ktjiaoyu.crm.mappertrace
#logging.pattern.console%p%m%n 启动类 package com.ktjiaoyu.crm;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
SpringBootApplication
MapperScan(com.ktjiaoyu.crm.mapper)
public class MyBatisPlusApplication {public static void main(String[] args) {SpringApplication.run(MyBatisPlusApplication.class, args);}} 编写实体类User package com.ktjiaoyu.crm.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
Data
TableName(sys_user)
public class User implements Serializable {TableId(type IdType.AUTO)TableField(usr_id)private Long usrId;TableField(usr_name)private String usrName;private String usrPassword;private Long usrRoleId;private Integer usrFlag;public User(String usrName, String usrPassword, Long usrRoleId, Integer usrFlag) {this.usrName usrName;this.usrPassword usrPassword;this.usrRoleId usrRoleId;this.usrFlag usrFlag;}
} 编写Mapper接口
package com.ktjiaoyu.crm.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ktjiaoyu.crm.pojo.User;
public interface UserMapper extends BaseMapperUser {}