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

网站设计的公司运营接单asp网站背景

网站设计的公司运营接单,asp网站背景,建设网站分析报告,建信股权投资管理有限责任公司文章目录 目录一、mybatisPlus的介绍二、mybatisPlus的基础使用配置BaseMapper的基本CURD#xff08;增删改查#xff09; 三、wrapper#xff08;条件构造器#xff09;条件构造器#xff08;wrapper#xff09;通用API基础条件判断#xff1a;进阶条件判断#xff08… 文章目录 目录一、mybatisPlus的介绍二、mybatisPlus的基础使用配置BaseMapper的基本CURD增删改查 三、wrapper条件构造器条件构造器wrapper通用API基础条件判断进阶条件判断in、like、between高级条件判断一子查询嵌套查询groupBy having、order by高级条件判断二func(函数)、and、or 条件构造器Wrapper特殊API 目录 一、mybatisPlus的介绍 1mybatisPlus是mybatis的增强工具所以在原本的mybatis中可以使用的语法在mybatisPlus基本上也是可以使用的。 2在mybatisPlus中引入了 条件构造器Wrapper 使得更加方便的进行开发 mybatisPlus官网https://baomidou.com/ 二、mybatisPlus的基础使用 配置 导入依赖 dependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-spring-boot3-starter/artifactIdversion3.5.9/version /dependency !--lombok-- dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId /dependency !--mysql-- dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.30/version /dependency配置文件application.properties/yml 这里以yml进行演示 spring:datasource:# 配置连接数据库的信息driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/yourdatabase?characterEncodingUTF-8username: yourusernamepassword: yourpassword # 配置mybatisPlus mybatis-plus:configuration: # 输出sql语句的日志效果就是在每次进行执行sql语句时会输出在控制板中log-impl: org.apache.ibatis.logging.stdout.StdOutImpl实体类的创建 TableName(value t_user) Data public class User implements Serializable {TableId(value id,type IdType.AUTO)private Long id;private String lastName;private String email;private String gender;private Integer age;private Integer isDelete;private Integer sex; }这里的两个注解的分别的意思是 TableName(value “”)设置此实体类所绑定的库名 TableId(value “id”,type IdType.AUTO)作用是将属性与数据库主键进行绑定 value是指此主键的名、 type设置默认填充的策略 这里只介绍两个 AUTO当设置此值时并且在数据库中进行设置了主键自增的属性之后则也数据库的自增为主若是数据库没有设置则会报错 ASSIGN_ID默认值经过雪花算法所得的唯一id注意此算法的出来的值因为过大所以一般都会将此id属性类型设置为Long类型 其他的策略在IDType枚举类中如图 Mapper配置 Mapper public interface UserMapper extends BaseMapperUser {}注意这里的User是指你要绑定的表不要设置错了否则就会找不到数据源 BaseMapper的基本CURD增删改查 在mybatisPlus中提供了一些简单的API来进行实现基本的CURD增删改查具体的使用方法在下面的测试类代码中进行演示 SpringBootTest public class demoTest {Autowiredprivate UserMapper userMapper;// 添加数据insertTestpublic void testInsert(){ // 方法一通过创建一个User对象进行添加 // 执行的sql语句为INSERT INTO t_user ( last_name, gender, age ) VALUES ( ?, ?, ? )User user new User();user.setAge(123);user.setLastName(张三);user.setGender(男);user.setId(1L);/*row为响应的行数*/ // int rows userMapper.insert(user); // 方法二insertOrUpdate()此方法是更具主键id进行增加或修改若是设置了重复的id值则会执行两条sql语句一条查询一条updateSystem.out.println(userMapper.insertOrUpdate(user));}// 删除Testpublic void testDelete(){ // 方式一通过id进行删除数据 // sql语句DELETE FROM t_user WHERE id?System.out.println(userMapper.deleteById(1877327132242313222L)); // 方式二通过map进行删除:map中的key值就是字段名value值就是你想要删除的某个字段的值 // sql语句 DELETE FROM t_user WHERE (last_name ?)HashMapString, Object map new HashMap();map.put(last_name,张三);System.out.println(map);System.out.println(userMapper.deleteByMap(map));}// 改Testpublic void testUpdate(){ // 方式一通过id进行修改,注意传的参数是实体类此实体类中id是判断的id其余的值为修改后的值 // sql语句: UPDATE t_user SET last_name?, gender?, age? WHERE id?User user new User();user.setAge(123);user.setLastName(张三);user.setGender(男);user.setId(2L);System.out.println(userMapper.updateById(user));}// 查Testpublic void testSelect(){ // 方式一:通过id进行查询 // sql语句: SELECT id,last_name,email,gender,age,is_delete,sex FROM t_user WHERE id?System.out.println(userMapper.selectById(3)); // 方式二通过map进行查询,返回的值为:listT // sql语句: SELECT id,last_name,email,gender,age,is_delete,sex FROM t_user WHERE (gender ?)HashMapString, Object map new HashMap();map.put(gender,男);System.out.println(userMapper.selectByMap(map));} } 三、wrapper条件构造器 MyBatis-Plus 提供了一套强大的条件构造器Wrapper用于构建复杂的数据库查询条件。 Wrapper 类允许开发者以链式调用的方式构造查询条件无需编写繁琐的 SQL 语句从而提高开发效率并减少 SQL 注入的风险。 在 MyBatis-Plus 中Wrapper 类是构建查询和更新条件的核心工具。 以下是主要的 Wrapper 类及其功能 wrapper 是所有条件构造器的顶级父类其主要实现类如下 AbsractChainWrapper 这是一个抽象基类提供了所有 Wrapper 类共有的方法和属性。 QueryWrapper 专门用于构造 查询Query 条件UpdateWrapper: 用于构造**更新Update**条件可以在更新数据时指定条件。AbstractLambdaWrapper: 使用Lambda 语法 LambdaUpdateWrapper Lambda 更新封装WrapperLambdaQueryWrapper 用于Lambda语法使用的查询Wrapper 继承关系示意图 条件构造器wrapper通用API 使用范围为QueryWrapper、LambdaQueryWrapper、UpdateWrapper、LambdaUpdateWrapper 这里为了方便展示wrapper的API就拿QueryWrapper进行演示了 基础条件判断 在mysql中的基础条件判断例如、、…都被mybatisPlus中的条件构造器进行封装成了对应的API方法如下 .gt():大于 .ge():大于等于 .gt():小于 .le():小于等于 .eq():等于 .ne():不相等 使用范围为QueryWrapper、LambdaQueryWrapper、UpdateWrapper、LambdaUpdateWrapper 具体用法如下 /*** 基础的条件判断(支持QueryWrapper、LambdaQueryWrapper、UpdateWrapper、LambdaUpdateWrapper)*/Testpublic void testWrapper(){QueryWrapperUser queryWrapper new QueryWrapper();/*sql语句SELECT id,last_name,email,gender,age,is_delete,sex FROM t_user WHERE (age ? AND age ? AND age ? AND age ? AND gender ? AND last_name ?)*/queryWrapper.gt(age,17) //gt:大于.ge(age,18) //ge:大于等于.lt(age,99) //gt:小于.le(age,100) //le:小于等于.eq(gender,男)//查询gender是否等于男.ne(last_name,null);//判断单个字段不相等的条件ListUser users userMapper.selectList(queryWrapper);System.out.println(users);}进阶条件判断in、like、between 在mysql中有三个关键字in、like、between,分别对应着条件构造器API中的 between(boolean condition, R column, Object val1, Object val2) : 范围匹配 between方法形参val1:左边界值、val2左边界值 like(boolean condition, R column, Object val)模糊匹配 like方法形参val 模糊匹配的值。 in(boolean condition, R column, Object... values) 取值匹配 in方法形参values 判断字段具体相等的值 共有形参 boolean condition 在这里是进行判断此方法是否执行若为true则正常执行若为false不执行下面的也会有许多的方法会有此形参这里就一笔带过了。 R column 表示需要进行条件判断的字段名 伴生API notBetween、notLike、notIn这些API就是与对应的API进行逆向取值的意思 likeRight右模糊匹配、likeLeft左模糊匹配 具体用法如下 /*** 进阶条件判断(支持QueryWrapper、LambdaQueryWrapper、UpdateWrapper、LambdaUpdateWrapper)* 相当于mysql中between、like*/Testpublic void testWrapper2(){QueryWrapperUser queryWrapper new QueryWrapper();/*sql语句为 SELECT id,last_name,email,gender,age,is_delete,sex FROM t_user WHERE (age BETWEEN ? AND ? AND last_name LIKE ? AND email LIKE ? AND last_name LIKE ?)*/queryWrapper.between(true,age,0,18)//查询age在0到18【包括边界值】最前面的boolean值是用来进行判断是否执行此between条件.notBetween(false,age,19,100)//与between相反.like(true,last_name,小)//查询last_name字段包含小的所有字段.notLike(false,last_name,c)//与like相反.likeLeft(true,email,qq.com)//满足左模糊匹配的字段对应的sql语句为: SELECT * FROM user WHERE emil LIKE %qq.com.likeRight(true,last_name,李);//满座右模糊匹配的字段所对应sql为 SELECT * FROM user WHERE last_name LIKE 李% // /*同时也有notLikeLeft、notLikeRight*/ListUser users userMapper.selectList(queryWrapper);System.out.println(queryWrapper);}/*** 进阶2条件判断(支持QueryWrapper、LambdaQueryWrapper、UpdateWrapper、LambdaUpdateWrapper)* 相当于mysql中in*/Testpublic void testWrapper3(){QueryWrapperUser queryWrapper new QueryWrapper();/*sql语句为SELECT id,last_name,email,gender,age,is_delete,sex FROM t_user WHERE (age BETWEEN ? AND ? AND last_name LIKE ? AND email LIKE ? AND last_name LIKE ?)*/queryWrapper.isNull(true, last_name)//判断是否为空.in(true, gender, 男, 女)//判断gender的值是否等于男或者女.notIn(true, age, Arrays.asList(1, 2));//与in方法相反,其中values值也可以使用arrays.asList进行赋值也就相当于使用数组进行赋值ListUser users userMapper.selectList(queryWrapper);System.out.println(users);}高级条件判断一子查询嵌套查询groupBy having、order by 在sql中的 子查询、group by having、order by 对应的API为 一、子查询~sql ~sql(boolean condition, R column, String ~Value):子查询在sql中的子查询的意思在条件判断中嵌套一个查询sql并且将此sql返回的值作为参数进行判断而有因为此判断可以是基础条件判断等一系列的判断就在条件构造器中派生了对应的API如inSql、geSql、leSql…其对应的sql语句为 SELECT * FROM yourBase WHERE column ~ ( ~Value ) 形参~value 的意思是需要进行嵌套的 子SQL语句 二、group by having.groupBy()、.having() 方法.groupBy() groupBy(boolean condition, R column) 方法.having()having(boolean condition, String sqlHaving, Object... params) 这两个方法所对应的就是mysql中的分组条件查询 having的形参 sqlHaving 用来进行过滤分组的条件sql语句还可以可以使用占位符进行标记列如:age{0} params 占位符所对应的参数。 **占位符使用注意**占位符 要与 参数一一对应否则会直接报错 三、order by orderBy(boolean condition, boolean isAsc, R column)此方法对应值mysql中的order by关键字 形参isAsc 是判断是否需要ASC升序排序 这里又伴生出来了两个方法orderByAsc默认升序、orderBYDesc默认降序 具体使用方法如下 /*** 高级条件判断(支持QueryWrapper、LambdaQueryWrapper、UpdateWrapper、LambdaUpdateWrapper)* 相当于mysql中子查询嵌套查询group by havingorder by*/Testpublic void testWrapper4(){QueryWrapperUser queryWrapper new QueryWrapper();/*sql语句为SELECT id,last_name,email,gender,age,is_delete,sex FROM t_user WHERE (id IN (select id from t_user where age18)) ORDER BY age ASC*/queryWrapper.inSql(true, id, select id from t_user where age18)//子查询将右边的sql语句进行执行执行完返回的所有值左与id进in条件判断.notInSql(false, id, select id from t_user where age18)//与上面相反,执行的sql语句为SELECT * FROM user WHERE id NOT IN (select id from t_user where age18)/*这里还有eqSql等于嵌套子查询、gtSql大于~、lt小于~、geSql大于等于~、leSql小于等于~。执行逻辑都和上面的inSql相似*/.orderBy(true, true, age);//根据age进行升序排序第一个参数是判断是否执行第二个参数是判断是否进行升序第三个参数是字段/*这里还有orderByAsc默认升序、orderBYDesc默认降序*/ListUser users userMapper.selectList(queryWrapper);System.out.println(users);}Testpublic void testWrapper5(){QueryWrapperUser queryWrapper new QueryWrapper();/*sql语句为SELECT count(*) FROM t_user GROUP BY age HAVING sum(age) ?*/queryWrapper.groupBy(true, age)//更具性别进行分组总共分两组男、女。 (注意这里可以不止更具一个字段进行分组可以设置多个但不常用) sql语句为SELECT gender FROM t_user GROUP BY gender;.having(true, sum(age) {0}, 18)//更具分组后的数据进行过滤sum(age)1;这里的{0},代表的是占位符其中的0就是后面的参数的第一位(注意占位符和参数必须保持一致),sql语句为SELECT * FROM t_user GROUP BY ... HAVING sum(age) 10.select(age);//查询的某个单独的字段这里因为用到了groupBy having所以尽量将分组的字段和查询的字段保持一致或者查询其他的逻辑运运算值(如:count),否则可能会报错SQL 查询与 MySQL 的 only_full_group_by SQL 模式不兼容。ListUser users userMapper.selectList(queryWrapper);System.out.println(users);} 高级条件判断二func(函数)、and、or func(函数)、and、or这三个是条件构造器中的API有了这些方法可以更加的灵活的执行sql语句 一、func函数 概念 它提供了一种在链式调用中根据条件执行不同查询操作的机制。通过传入一个 Consumer 函数式接口func 方法允许你在不中断链式调用的情况下根据条件执行不同的查询构建逻辑。 方法签名func(boolean condition, ConsumerChildren consumer) 二、or、and **概念**看到这里并且敲代码尝试的话会发现不管使用ge\lt等方法默认的连接条件就是and所以这里条件构造器就派生出了两个API就是or、and。 **方法签名and\or(boolean condition, ConsumerChildren consumer) 共有形参consumer一个 Consumer 函数式接口它接受一个 Children 类型的参数并可以调用 Children 对象上的方法来构建查询条件。 这里看着可能并不理解可以直接看下面的代码以及注释会明了一些 /*** 高级条件判断 3(支持QueryWrapper、LambdaQueryWrapper、UpdateWrapper、LambdaUpdateWrapper)* 是mybatisPlus中创建的方法func、and、or。有了这些方法可以更加的灵活的执行sql语句*/ Test public void testFunc(){QueryWrapperUser queryWrapper new QueryWrapper();/*sql语句为SELECT id,last_name,email,gender,age,is_delete,sex FROM t_user WHERE (last_name ?)*/queryWrapper.func(true,i - {if (true){i.eq(last_name,小红);//这里因为条件一直恒等于true所以会执行此方法}else {i.ne(last_name,小红);}}//此方法结合lambda[此时的参数i也就是queryWrapper对象可以执行里面的方法]进行从而可以在执行sql语句前执行一些其他的操作列如判断、循环(不推荐),);ListUser users userMapper.selectList(queryWrapper);System.out.println(users); } Test public void testAnd(){QueryWrapperUser queryWrapper new QueryWrapper();/*sql语句为SELECT id,last_name,email,gender,age,is_delete,sex FROM t_user WHERE (age ? AND (last_name LIKE ?) OR (email LIKE ?))*/queryWrapper.ge(age,100).and(true,i -{//进行and的条件运算对应的sql语句为SELECT * FROM t_user WHERE (age100 AND (last_name like %1%));i.like(last_name,1);}).or(true,j - {//进行or条件运算,对应的sql语句为SELECT * FROM t_user WHERE (......) OR (email like %qq.com)j.likeLeft(true,email,qq.com);});//此时的or是和前面的ge和and方法做or运算(... where (age100 and (last_name like %1%)) or (email like %qq.com) )所以or里面的条件满足而上面的条件不满足也是可以查询出来的ListUser users userMapper.selectList(queryWrapper);System.out.println(users); }条件构造器Wrapper特殊API 使用范围并不是通用的。 只适用于lambdaQueryWrapper和QueryWrapper的Api有select 只适用于lambdaUpdateWrapper和UpdateWrapper的Apiset、setSql 在mybatisPlus3.5.9:所更新的API 只适用于lambdaUpdateWrapper和UpdateWrappersetDecrBy、setIncrBy 如以下代码所示 // 只适用于lambdaQueryWrapper和QueryWrapper的ApiTestpublic void testQuery(){ // sql语句为 SELECT id,age,email FROM t_user // 一、select用于查询单独某一个字段的apiQueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.select(id,age,email);System.out.println(userMapper.selectList(queryWrapper));}// 只适用于lambdaUpdateWrapper和UpdateWrapper的ApiTestpublic void testUpdate(){// sql语句为UPDATE t_user SET sex? WHERE (age ?) // 一、set用于修改某个字段的值UpdateWrapperUser userUpdateWrapper new UpdateWrapper();userUpdateWrapper.gt(age,18)//修改条件.set(true,sex,1);System.out.println(userMapper.update(userUpdateWrapper));// sql语句为UPDATE t_user SET last_name? WHERE (age ?) // 二、setSql若是修改的字段过于繁琐复杂可以直接写入sql语句将写好的sql语句进行拼接到set关键字之后UpdateWrapperUser userUpdateWrapper2 new UpdateWrapper();userUpdateWrapper2.lt(age, 18)//修该条件.setSql(true, last_name{0}, 张三);//进行拼接的sqlSystem.out.println(userMapper.update(userUpdateWrapper2));}// 只适用于lambdaUpdateWrapper和UpdateWrapper的Api注意这些API的适用的mybatisPlus的版本为3.5.9Testpublic void testLambdaUpdate(){ // sql语句为UPDATE t_user SET ageage - 2 WHERE (age ?) // 一、setDecrBy方法是在指定的字段的基础上进行递减valLambdaUpdateWrapperUser lambdaUpdateWrapper new LambdaUpdateWrapper();lambdaUpdateWrapper.gt(User::getAge, 35)//更新条件.setDecrBy(true, User::getAge, 2); // System.out.println(userMapper.update(lambdaUpdateWrapper));// sql语句为UPDATE t_user SET ageage 2 WHERE (age ?) // 二、setIncrBy方法是在指定的字段的基础上进行累加valLambdaUpdateWrapperUser lambdaUpdateWrapper2 new LambdaUpdateWrapper();lambdaUpdateWrapper2.gt(User::getAge, 35)//更新条件.setIncrBy(true, User::getAge, 2);System.out.println(userMapper.update(lambdaUpdateWrapper2));}这里是条件构造器中的大部分API其中还有一些api并没有列举出来要是找不到的话可以去官网mybatisPlushttps://baomidou.com/guides/wrapper/ 中进行查询
http://www.w-s-a.com/news/468615/

相关文章:

  • 网站建设开发设计营销公司山东网信办抓好网站建设
  • 斗图在线制作网站搜索关键词优化
  • 大连 网站建设 有限公司十大erp系统
  • 网站后台建设软件网络营销公司招聘
  • 做网站销售电销好做吗网站开发毕业设计代做
  • 成都学网站建设费用帝国cms与wordpress
  • 如何刷网站排名品牌设计的英文
  • 富阳有没有做网站的房产局官网查询系统
  • 建设网站列表aliyun oss wordpress
  • 做PPT的辅助网站wordpress拖拽式主题
  • 商城网站源码seo兼职58
  • 汽车租赁网站的设计与实现全网营销推广哪家正规
  • 做网站时怎么取消鼠标悬停如何设计软件界面
  • 建德网站设计公司中国十大热门网站排名
  • 网站与新媒体建设测评方案163企业邮箱官网入口
  • 怎样做下载网站页面设计参评
  • 哈尔滨住建局网站首页设计制作过程
  • php投资理财企业网站模板网站呼叫中心 建设工期
  • 查数据的权威网站silverlight 做的网站
  • 网站开发外包网站贵阳网站建设 网站制作
  • 官方微网站西安景观设计公司排行
  • 广州学做网站视频代做网站
  • 沈阳公司建站seo课程培训班
  • 杭州做微信网站软件公司网站建设毕业设计中期进度报告
  • 怎么做谷歌这样的网站如何建立一个网站放视频
  • 园区网站建设调研报告北京朝阳区哪里有网站开发
  • 网站角色权限wordpress 优化版
  • 购物网站ppt怎么做网络公司注册多少钱
  • 学做衣服上什么网站好贴吧高级搜索
  • 贵州 跨境电商网站建设做淘宝店铺有哪些好的网站