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

门户类网站有哪些丽水做企业网站的地方

门户类网站有哪些,丽水做企业网站的地方,三门峡高端网站建设,外包网络安全目录 🌲 MyBatis Plus 简介 🌾入门案例 🌾 MP 简介 🌲 MP 的CRUD 🌾 新增 🌾 删除 🌾 修改在进行 🌾 根据ID查询 🌾 查询所有 🌲 分页功能 🌾 设置分页参数 🌾 设置分页拦截器 🌲 优化启动 🌾 取消mbatisPlusBanner 🌾 取消Sprin…目录 🌲 MyBatis Plus 简介 🌾入门案例 🌾 MP 简介 🌲 MP 的CRUD 🌾 新增 🌾 删除 🌾 修改在进行 🌾 根据ID查询 🌾 查询所有 🌲 分页功能 🌾 设置分页参数 🌾 设置分页拦截器 🌲 优化启动 🌾 取消mbatisPlusBanner 🌾 取消SpringBanner 🌲 DQL 编程控制 🌾 构建条件查询 🌾 多条件构建 🌾 null 判定 🌾 查询投影 🍁 查询指定字段 🍁 聚合查询 🍁 分组查询 🌾 查询条件 🍁 等值查询 🍁 范围查询 🍁 模糊查询 🍁 排序查询 🌾 映射匹配兼容性 🍁 表字段与实体属性名称不同 🍁 实体类中有表中不存在的属性 🍁 隐藏字段 🍁 @TableFiled 总结 🍁 表名与实体类名不同 🌲 DML编程控制 🌾 id生成策略控制 🍁 数据库ID自增 🍁 INPUT策略 🍁 ASSIGN_ID 策略 🍁 ASSIGN_UUID策略 🍁 雪花算法 🍁 id生成策略对比 🌾 删除数据 🍁 批量删除 🍁 逻辑删除(软删除) 🌲 乐观锁(重要) 🌾 概念 🌾 实现思路 🌾 实现步骤 🌲 MP自动生成组件代码 🌿 引入自动生成代码的依赖 🌿 添加配置 🌿 在测试类中添加代码 ====点波关注吧======= 🌲 MyBatis Plus 简介 MybatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提供效率。至于简化在哪里,我们先看一个案例然后再来详细探究MyBatisPlus。 🌾入门案例 前面的课程中我们使用的SpringBoot整合了mybatis,那么这次我们用SpringBoot来整合MybatisPlus,我们先新建一个springBoot整合mybatis的项目出来。 创建项目SpringBoot项目时可以勾选mysql驱动依赖,其他的依赖视情况而定。由于MP并未被收录到idea的系统内置配置,无法直接选择加入,需要手动在pom.xml中配置添加 dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.4.1/version /dependency dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.1.16/version /dependency 添加MP的相关配置信息 resources默认生成的是properties配置文件,可以将其替换成yml文件,并在文件中配置数据库连接的相关信息:application.yml spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/studyusername: rootpassword: 123456mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 创建实体类package com.moxuan.boot_mp.entity;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;@Data @NoArgsConstructor @AllArgsConstructor public class Hero {private Long id;private String hname;private String job;private Integer level;private String sex; }创建Dao接口package com.moxuan.boot_mp.dao;import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import com.moxuan.boot_mp.entity.Hero; import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Repository;public interface HeroDao extends BaseMapperHero {}在启动类上添加@MapperScan 注解package com.moxuan.boot_mp;import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication // 配置Dao扫描路径 @MapperScan("com.moxuan.boot_mp.dao") public class BootMpApplication {public static void main(String[] args) {SpringApplication.run(BootMpApplication.class, args);}}Dao接口要想被容器扫描到,有两种解决方案: 方案一:在Dao接口上添加@Mapper注解,并且确保Dao处在引导类所在包或其子包中该方案的缺点是需要在每一Dao接口中添加注解方案二:在引导类上添加@MapperScan注解,其属性为所要扫描的Dao所在包该方案的好处是只需要写一次,则指定包下的所有Dao接口都能被扫描到,@Mapper就可以不写。编写测试类@SpringBootTest class BootMpApplicationTests {@Autowiredprivate HeroDao dao;@Testpublic void testGetAll(){ListHero heroList = dao.selectList(null);System.out.println(heroList);} } 说明: userDao注入的时候下面有红线提示的原因是什么? UserDao是一个接口,不能实例化对象只有在服务器启动IOC容器初始化后,由框架创建DAO接口的代理对象来注入现在服务器并未启动,所以代理对象也未创建,IDEA查找不到对应的对象注入,所以提示报红一旦服务启动,就能注入其代理对象,所以该错误提示不影响正常运行。测试结果: 跟之前整合MyBatis相比,你会发现我们不需要在DAO接口中编写方法和SQL语句了,只需要继承BaseMapper接口即可。整体来说简化很多。 🌾 MP 简介 MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提高效率 通过刚才的案例,相信大家能够体会简化开发和提高效率这两个方面的优点。 MyBatisPlus的官网为:https://mp.baomidou.com/ 从这张图中我们可以看出MP旨在成为MyBatis的最好搭档,而不是替换MyBatis,所以可以理解为MP是MyBatis的一套增强工具,它是在MyBatis的基础上进行开发的,我们虽然使用MP但是底层依然是MyBatis的东西,也就是说我们也可以在MP中写MyBatis的内容 MP的特性: 无侵入:只做增强不做改变,不会对现有工程产生影响强大的 CRUD 操作:内置通用 Mapper,少量配置即可实现单表CRUD 操作支持 Lambda:编写查询条件无需担心字段写错支持主键自动生成内置分页插件……🌲 MP 的CRUD 对于标准的CRUD功能都有哪些以及MP都提供了哪些方法可以使用呢? 我们先来看张图: 🌾 新增 在进行新增之前,我们可以分析下新增的方法: int insert (T t) T:泛型,新增用来保存新增数据int:返回值,新增成功后返回1,没有新增成功返回的是0@Test public void testSave(){Hero hero = new Hero();hero.setHname("陈平安");hero.setJob("保安");hero.setSex("男");hero.setLevel(12);dao.insert(hero); } 添加数据后,会自动帮我们生成主键。 🌾 删除 在进行删除之前,我们可以分析下删除的方法: int deleteById (Serializable id) int:返回值类型,数据删除成功返回1,未删除数据返回0。 @Test public void testDelete(){dao.deleteById(1710316113105047553L); } 🌾 修改在进行 修改之前,我们可以分析下修改的方法: int updateById(T t); T:泛型,需要修改的数据内容,注意因为是根据ID进行修改,所以传入的对象中需要有ID属性值int:返回值,修改成功后返回1,未修改数据返回0@Test public void testUpdate(){Hero hero = new Hero();hero.setId(1L);hero.setJob("坦克");dao.updateById(hero); } 说明:修改的时候,会自动只修改实体对象中有值的字段。 🌾 根据ID查询 在进行根据ID查询之前,我们可以分析下根据ID查询的方法: T selectById (Serializable id) Serializable:参数类型,主键ID的值T:根据ID查询只会返回一条数据@Test public void testGetById(){Hero hero = dao.selectById(2L);System.out.println(hero); } 🌾 查询所有 在进行查询所有之前,我们可以分析下查询所有的方法: ListT selectList(WrapperT queryWrapper) Wrapper:用来构建条件查询的条件,目前我们没有可直接传为NullListT:因为查询的是所有,所以返回的数据是一个集合@Test public void testGetAll(){ListHero heroList = dao.selectList(null);System.out.println(heroList); } 🌲 分页功能 基础的增删改查就已经学习完了,刚才我们在分析基础开发的时候,有一个分页功能还没有实现,在MP中如何实现分页功能,就是咱们接下来要学习的内容。 分页查询使用的方法是: IPageT selectPage(IPageT page, WrapperT queryWrapper) IPage:用来构建分页查询条件Wrapper:用来构建条件查询的条件,目前我们没有可直接传为NullIPage:返回值,你会发现构建分页条件和方法的返回值都是IPageIPage是一个接口,我们需要找到它的实现类来构建它,具体的实现类,可以进入到IPage类中按ctrl+h,会找到其有一个实现类为Page。 🌾 设置分页参数 @Test public void testSelectPage(){IPageHero page = new Page(1,3);dao.selectPage(page,null);System.out.println("当前的页码值:"+page.getCurrent());System.out.println("每页显示数:"+page.getSize());System.out.println("一共多少页:"+page.getPages());System.out.println("一共多少条数据:"+page.getTotal());System.out.println("数据:"+page.getRecords()); } 🌾 设置分页拦截器 这个拦截器MP已经为我们提供好了,我们只需要将其配置成Spring管理的bean对象即可。 package com.moxuan.boot_mp.config;import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;@Configuration public class MybatisPlusConfig {/*** 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)*/@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();//向Mybatis过滤器链中添加分页拦截器interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));//还可以添加i他的拦截器return interceptor;}}注意这个属于配置类,所以类上方需要添加@Configuration. 运行效果: 🌲 优化启动 测试的时候,控制台打印的日志比较多,速度有点慢而且不利于查看运行结果,所以接下来我们把这个日志处理下: 🌾 取消mbatisPlusBanner application.yml添加如下内容: 🌾 取消SpringBanner application.yml添加如下内容: 其他的可以不用再做优化了,一般会被用来方便我们查看程序运行的结果,也可以帮助我们调错。 🌲 DQL 编程控制 增删改查四个操作中,查询是非常重要的也是非常复杂的操作 测试的时候,控制台打印的日志比较多,速度有点慢而且不利于查看运行结果,所以接下来我们把这个日志处理下: 🌾 构建条件查询 在进行查询的时候,我们的入口是在Wrapper这个类上,因为它是一个接口,所以我们需要去找它对应的实现类,关于实现类也有很多,说明我们有多种构建查询条件对象的方式 看一下下面的案例: @Test void testGetAllDQL(){QueryWrapper qw = new QueryWrapper();qw.lt("level",3);ListHero userList = dao.selectList(qw);System.out.println(userList); } lt: 小于(),最终的sql语句为:
http://www.tj-hxxt.cn/news/138600.html

相关文章:

  • 做设计适合关注的网站如何查网站的备案信息
  • 个体营业执照可以做网站嘛php微信公众号开发教程
  • 看网站搜什么关键词网页传奇哪个最好玩
  • 重庆在百度做个网站多少钱一个做网站的团队需要哪些
  • 设计师品牌 网站wordpress 付费会员分类
  • 做视频的网站平台类网站有哪些
  • 域名怎么解析到网站如何制作自己的微信小程序
  • 网站空间管理地址dz 做企业网站
  • 长春模板网站建设企业wordpress谷歌广告代码
  • 南通建网站的公司如何用万网建设网站
  • 温州网站建设推广服务wordpress转typecho
  • 本地网站建设开发信息大全低价建设网站
  • 上海cms网站建设展厅设计图
  • 佛山网站免费制作网站被降权的原因
  • 个人网站做淘宝客会怎样p2p电影网站开发
  • 上海高端网站建设网站界面ui设计国家开放大学答案
  • 最爱网南京seo优化公司
  • 郑州网站设计 郑州网站开发手机优化大师怎么卸载
  • 推广公司的网站可以采取哪些方式怎样做农产品交易平台网站
  • 重庆祥云平台做网站坪地网站建设基本流程
  • 广州网站建设系统某网站开发工具和技术
  • 网站建设前台与后台最新技术wordpress分类页面添加幻灯片
  • 电子政务与网站建设 总结做水果网站需要些什么
  • 网站开发电脑配置网络架构图和拓扑图
  • 网站年龄和域名年龄重庆app制作开发商
  • 百度做网站的电话赛尔网络公司好不好
  • 网站不兼容360浏览器市场营销策略名词解释
  • 长沙多用户商城网站建设什么网站可以做平面设计赚钱
  • 做网站的qq兼职如何删除首页wordpress
  • 网站想举报怎么做天猫网站是用什么技术做的