当前位置: 首页 > wzjs >正文

哪里有建设网站东莞seo排名收费

哪里有建设网站,东莞seo排名收费,快站免费网站建设哪家好,唐山网站建设电话一、MybatisPlus是什么? MybatisPlus官网:https://baomidou.com/ 由官网定义可知: 1、MP不是为了取代Mybatis,是Mybatis的搭档,是协作完成需求; 2、MP是为了简化Mybatis的开发,提高效率。 无…

一、MybatisPlus是什么?

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

由官网定义可知:

1、MP不是为了取代Mybatis,是Mybatis的搭档,是协作完成需求;

2、MP是为了简化Mybatis的开发,提高效率。

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求
  • 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错
  • 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题
  • 支持 ActiveRecord 模式:支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作
  • 支持自定义全局通用操作:支持全局通用方法注入( Write once, use anywhere )
  • 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用
  • 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询
  • 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库
  • 内置性能分析插件:可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
  • 内置全局拦截插件:提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操作

二、快速入门

(一)创建一个SpringBoot项目MPDemo

(二)导入MP的起步依赖

注:引入MP的起步依赖,实则已经包含了Mybatis的起步依赖。

        <!-- 导入MybatisPlus的起步依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.10.1</version></dependency><!-- 导入lombook起步依赖--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version><scope>provided</scope></dependency><!-- 导入mysql的起步依赖--><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency>

(三)创建测试数据库

数据库脚本如下:

# 创建数据库mpdemo
create database mpdemo;# 使用数据库mpdemo
use mpdemo;DROP TABLE IF EXISTS `user`;# 创建表user
CREATE TABLE `user`
(id BIGINT NOT NULL COMMENT '主键ID',name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',age INT NULL DEFAULT NULL COMMENT '年龄',email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (id)
);# 为user表插入数据
INSERT INTO `user` (id, name, age, email) VALUES(1, 'Jone', 18, 'test1@baomidou.com'),(2, 'Jack', 20, 'test2@baomidou.com'),(3, 'Tom', 28, 'test3@baomidou.com'),(4, 'Sandy', 21, 'test4@baomidou.com'),(5, 'Billie', 24, 'test5@baomidou.com');

(四)配置application.yml

数据库连接配置

spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mpdemousername: rootpassword: root

(五)创建实体类User

@Data
@TableName("`user`")
public class User {private Long id;private String name;private Integer age;private String email;
}

(六)创建数据访问层UserMapper

@Mapper
public interface UserMapper extends BaseMapper<User> {}

(七)创建测试类SampleTest

@SpringBootTest
public class SampleTest {@Autowiredprivate UserMapper userMapper;@Testpublic void testSelect() {System.out.println(("----- selectAll method test ------"));List<User> userList = userMapper.selectList(null);Assert.isTrue(5 == userList.size(), "");userList.forEach(System.out::println);}}

(八)MP结果验证

三、MP常见注解

MP的原理:MP通过扫描实体类,并基于反射获取实体类信息作为数据库表信息。

(1)实体类名驼峰转下划线作为表名;

(2)名为id的字段作为主键;

(3)变量名驼峰转下划线作为表的字段名。

(一)@TableName注解

@TableName注解,用来指定表名。

(二)@TableId注解

@TableId注解,用来指定表中的主键字段信息。

@TableId(value = "id", type = ""),value为命名,type的类型有:

(1)IdType.AUTO:数据库自增长。

(2)IdType.INPUT:通过set方法自定输入。

(3)IdType.ASSIGN_ID:分配ID,接口IdentifierGenerator的方法nextId来生成id,默认实现类为DefaultIndentifierGenerator雪花算法。

(三)@TableFiled注解

@TableFiled注解,用来指定表中的普通字段信息。

常见的场景有:

(1)成员变量名与数据库字段名不一致;

(2)成员变量名以is开头,且是布尔值;

(3)成员变量名与数据库关键字冲突;

(4)成员变量不是数据库字段。

(四)示例

数据库表信息

实体类信息

/*** MP常用注解示例*/
@TableName("tb_user")
public class User {@TableId(value = "id", type = IdType.AUTO)private Long id;@TableField("username")private String name;@TableField("is_married")private Boolean isMarried;@TableField("'order'")private Integer order;@TableField(exist = false)private String address;}

(五)常见配置

MP的配置项继承了Mybatis原生配置,当然也有自身的新特性配置,例如:

# myabtis-plus信息配置
mybatis-plus:type-aliases-package: com.yassels.mpdemo.pojo # 别名扫描包mapper-locations: "classpath*:/mapper/**/*.xml" # Mapper.xml文件地址,默认值configuration:map-underscore-to-camel-case: true # 是否开启下划线和驼峰的映射cache-enabled: false # 是否开启二级缓存global-config:db-config:id-type: assign_id # id为雪花算法生成update-strategy: not_null # 更新策略,值更新非空字段

四、MP使用的基本流程

(1)导入MP的地步依赖;

(2)Mapper继承BaseMapper<User>;

(3)通过注解处理实体类与数据库表信息保持一致;

(4)Application.yml配置MP信息。

五、核心功能

(一)条件构造器

MP支持各种复杂的where条件:

 条件构造器的用法: 

(1)QueryWrapper和LambdaQueryWrapper通常用来构建select、delete、update的where条件部分;

(2)UpdateWrapper和LambdaUpdateWrapper通常只有在set语句比较特殊时才使用;

(3)尽量使用LambdaUpdateWrapper和LambdaQueryWrapper,避免硬编码。

(二)自定义SQL

利用MP的Wrapper来构建复杂的Where条件,然后自己定义SQL语句中剩下的部分。

(三)Service接口

http://www.dtcms.com/wzjs/162837.html

相关文章:

  • qt 做网站经典软文案例100例简短
  • 重庆网站网络推广推广申请域名
  • 网站设计与网站建设a卷seo综合查询国产
  • 广西高端网站建设郑州seo软件
  • 阿里云 wordpress 响应时间seoul是韩国哪个城市
  • 合合肥网站建设百度投稿平台
  • 佛山网站建设公司88深圳百度推广代理商
  • 增加wordpress小工具优化设计答案六年级上册
  • 团购网站开发网络营销理论
  • 网站开发需要哪些资料昆山网站建设公司
  • 计算机网站开发开题报告范文三亚百度推广地址
  • 网站开发实践研究报告福州百度seo排名软件
  • 线下编程课程收费标准北京seo设计公司
  • text-indent:2em wordpress铁力seo
  • 响应式网站设计多少钱南宁关键词优化软件
  • 漳州网站设计制作全是广告的网站
  • 购物网站留言反馈页面关键词资源
  • 合肥网站建设=388元网络运营培训哪里有学校
  • 番禺网站建设哪家好查询网域名查询
  • 做网站写个人日志网站权重怎么看
  • 朝阳网站建设 百子湾全国各大新闻网站投稿
  • 如何做好网站seo外包推广
  • jsp做网站还网站权重怎么查
  • 桂林尚品网络做的网站好不好百度的主页
  • 网站设计佛山近期的时事热点或新闻事件
  • 防护网施工方案武汉做seo
  • 建设网站大全千锋教育学费
  • 怎么做网站呢百度引擎搜索引擎
  • 如何做可以微信转发的网站免费友链平台
  • 企业网站的基本特点是什么网络推广公司方案