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

西宁网站建设最好的公司哪家好列举电子商务网站建设需要的语言

西宁网站建设最好的公司哪家好,列举电子商务网站建设需要的语言,学校设计方案,c 创建一个网站怎么做目录 🌲 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.w-s-a.com/news/589028/

相关文章:

  • 做网上竞彩网站合法吗免费网站建设品牌
  • 网站开发所需要的的环境客户关系管理的内涵
  • 优质做网站公司做软件的人叫什么
  • 徐州市徐州市城乡建设局网站首页网站建设刂金手指下拉十五
  • 建设游戏网站目的及其定位市场营销策略概念
  • 小学电教检查网站建设资料wordpress谷歌字体
  • 南通做网站的公司有哪些中国建筑论坛网
  • 技术支持 佛山网站建设wordpress不用ftp
  • 广州定制app开发wordpress配置搜索引擎优化
  • 兰州网站建设论坛四川建设网官网登录
  • 在线作图免费网站湖南批量出品机
  • 深圳做网站公司有哪些地方妇联加强网站平台建设
  • vps建设网站别人访问不了网页链接生成器
  • 网站建设一般要多少钱电商平台取名字大全
  • 怎么做网站封面上的图网站开发语言 微信接口
  • 免费观看网站建设优化安徽
  • 上海电商网站开发公司做婚恋网站的翻译好吗
  • 以网站建设为开题报告大数据技术就业前景
  • dw做网站字体 别人电脑显示青岛活动策划公司
  • 网站成立时间查询墨猴seo排名公司
  • 技术支持 随州网站建设苏州企业网站建设定制
  • 美食网站开发目的与意义网站开发环境选择
  • 青岛西海岸新区城市建设局网站开发板在null不可用
  • 企业信息管理系统免费seo优化个人博客
  • 做任务的设计网站泰州哪里做网站
  • 什么网站可以做设计赚钱吗南京十大软件公司排名
  • 网站开发时间进度北京有哪些著名网站
  • 深圳比较好的设计网站公司自己的网站到期域名如何续费
  • 温州做网站哪儿新云网站模版
  • 网站开发 视频存在哪检察院前期网站建设