最新文章GraphQL介绍
前言
GraphQL官网:https://graphql.org/
GraphQL国内翻译:https://graphql.cn/
GraphQL在前端使用较多
GraphQL前端常用工具:https://www.apollographql.com/(适用于Node.js)
Java后端:Graph-Java
1 GraphQL介绍及最佳场景 GraphQL 是一种针对 Graph(图状数据)进行查询特别有优势的 Query Language(查询语言),所以叫做 GraphQL。它跟 SQL 的关系是共用 QL 后缀,就好像「汉语」和「英语」共用后缀一样,但他们本质上是不同的语言。GraphQL 跟用作存储的 NoSQL 没有必然联系,虽然 GraphQL 背后的实际存储可以选择 NoSQL 类型的数据库,但也可以用 SQL 类型的数据库,或者任意其它存储方式(例如文本文件、存内存里等等)。
GraphQL 最大的优势是查询图状数据。GraphQL 是 Facebook 发明的,可以用 Facebook 做例子。例如说,如果要在 Facebook 上打开我的页面 ...
GraphQL+SpringBoot+Mybatisplus示例demo
前言
GraphQL基本介绍可见文章:https://blog.liyi.xyz/posts/c6f3.html
1 配置1.1 依赖导入导入graphql、mysql、Mybatisplus相关依赖:
123456789101112131415161718192021222324252627<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional></dependency><!-- https://mvnrepository.com/artifact/com.graphql-java-kickstart/graphql-spring-boot-starter --><dependency> <groupId>com.graphql-java-kickstart</grou ...
比较两个日期大小的常用方式
一、Date类型的after()方法与before()方法的使用注意:使用之前应该将需要比较的两个对象时间使用SimpleDateFormat做出格式一致性调整;
1234567.after()方法:当前面的时间晚于后面的时间时返回true,否则返回false. 例如:当前时间date=2044-03-29 12:00:00,addDate=2033-09-29 12:00:00 此时:date.after(addDate)=true .before()方法:当前面的时间早于后面的时间时返回true,否则返回false. 例如:当前时间date=2033-09-29 12:00:00,addDate1=2044-09-29 12:00:00 此时:date.before(addDate1)=true
二、转换为字符串的形式比较12345678910111213public class GetDate { public static void main(String[] args) { String str1="2015 ...
Mybatis数据批量更新方法
批量更新的使用,mybatis中批量更新有很多种方法,可以把数据一条条更新,也可以传入一个数据集一次性更新,对于数据量不多的情况下(只有几千条)这种一次性更新就可以。数据量多可以使用多线程将数据分成多个集合后进行数据分批更新。
第一步:创建实体类DTO,数据更新时只接收id,data两个参数
123456789101112131415161718192021222324package com.keypersonnelinformation.keypersonnel.model.dto; import lombok.Data; /** * 全量更新身份证号码 * * @Author linht * @Date 2022/6/16 10:38 **/@Datapublic class UpdateIdCardDTO { /** * 主键 */ private Integer id; /** * data_info */ private String dataInfo; }
第二步:编写查询数据库数据的mapp ...
List列表运用stream流按某字段去重
问题项目中经常会遇到列表去重的问题,一般可使用Java8的stream()流提供的distinct()方法:list.stream().distinct()。list的类型为List<String>、List<Integer>,list里的元素为简单包装类型。或者List<Xxx>,其中Xxx为自定义对象类型,重写equals和hashCode方法,可根据业务情况来实现,如id相同即认为对象相等。有时会遇到这种情况,需要对按对象里的某字段来去重。
例如:
123456789101112131415@NoArgsConstructor@AllArgsConstructor@Dataclass Book { public static Book of(Long id, String name, String createTime) { return new Book(id, name, Date.from(LocalDateTime.parse(createTime, DateTimeFormatter.ofPat ...
两个List集合取交集、并集、差集
code示例:
1234567891011121314151617181920212223242526272829303132333435363738@Testpublic void test(){ List<String> list1 = new ArrayList<String>(); list1.add("a"); list1.add("b"); list1.add("c"); list1.add("d"); list1.add("e"); List<String> list2 = new ArrayList<String>(); list2.add("c"); list2.add("d"); list2.add("e"); list2.add("f"); list2.add ...
BigDecimal详解
一、BigDecimal概述 Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些不需要准确计算精度的数字,我们可以直接使用Float和Double处理,但是Double.valueOf(String) 和Float.valueOf(String)会丢失精度。所以开发中,如果我们需要精确计算的结果,则必须使用BigDecimal类来操作。
BigDecimal所创建的是对象,故我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法。方法中的参数也必须是BigDecimal的对象。构造器是类的特殊方法,专门用来创建对象,特别是带有参数的对象。
二、BigDecimal常用构造函数2.1、常用构造函数
BigDecimal(int)
创建一个具有参数所指定整数值的对象
BigDecimal(double)
创建一个具有参数所指定双精度值的对象
B ...
理解 BigDecimal 的 RoundingMode
前言在金融等对数据精度计算要求较高的领域,传统 double 运算无法满足要求, BigDecimal 类应运而生。实际使用中,RoundingMode 这个枚举类控制着小数的舍位原则,本文对该枚举类进行介绍。
一、RoundingMode.DOWN等价枚举: BigDecimal.ROUND_DOWN
舍位原则: 粗暴截断舍弃位,不考虑任何进位舍位操作
例: Scale = 2
1234Origin:3.33333333333333 OutPut:3.33Origin:1.976744186046512 OutPut:1.97Origin:-4.868913857677903 OutPut:-4.86Origin:-2.307692307692308 OutPut:-2.3
二、RoundingMode.UP等价枚举: BigDecimal.ROUND_UP
舍位原则: 精度保留的最后一位,朝远离数轴的方向进位。正数+1,负数-1
例: Scale = 2
1234Origin:3.33333333333333 OutPut:3.34Origin:1. ...
获取当前日期时间并格式化
前言
日期时间的获取、显示是每个程序都会涉及到的,下面是一些记录以便日后查阅。
1 java.util.Date类1234567// 当前日期时间Date now = new Date();/* 由于程序的默认时区不同,可能显示如下内容: * 1. 格林尼治时间,Tue Oct 28 01:24:14 GMT 2014 * 2. 美国中部标准时间,Tue Oct 27 23:24:14 GST 2014 */System.out.println(now);
从上面的示例可以知道除了 java.util.Date类 外我们还要了解时区 java.util.TimeZone 这个类才能得到需要的日期信息。
2 java.util.TimeZone类示例1:
1234// 获取默认时区(最初始时由JVM决定的)TimeZone defaultTZ = TimeZone.getDefault();// 显示sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transiti ...
-bash: mysql: command not found
1 背景在Linux服务器上输入mysql -u root -p提示错误:-bash: mysql: command not found
2 解决办法输入以下alias语句设置别名后,即可使用mysql进行操作:
1alias mysql=/usr/local/mysql/bin/mysql
注意:**/usr/local/mysql/bin/mysql**为MySQL的安装位置下的可执行文件(即mysql.exe的位置,应根据实际安装位置进行修改)
再次输入mysql -u root -p后,输入mysql口令即可成功进入MySQL。
















