java

Java关键字之native详解

2022-01-19
目录 1.JNI:Java Native Interface 2.用C语言编写程序本地方法 一.编写带有native声明的方法的java类 二.使用javac命令编译所编写的java类,生成.class文件 三.使用javah -jni java类名生成扩展名为 h 的头文件 四.使用C语言实现本地方法 3.JNI调用C的流程图 4.native关键字 总结 本篇博客我们将介绍Java中的一个关键字——native. native 关键字在 JDK 源码中很多类中都有,在 Object.java

Java IO之字节输入输出流详解

2022-01-19
目录 1.字节输出流:OutputStream 2.字节输入流:InputStream 3.用字节流完成文件的复制 总结 那么这篇博客我们讲的是字节输入输出流:InputStream.OutputSteam(下图红色长方形框内),红色椭圆框内是其典型实现(FileInputSteam.FileOutStream) 1.字节输出流:OutputStream public abstract class OutputStream extends Object implements Closeable,

解决mybatis无法给带有下划线属性赋值问题

2022-01-19
目录 mybatis无法给带有下划线属性赋值问 1.配置问题 2.增加set方法转换值的方式 解决方法 实体类中有下滑线字段无法赋值问题 mybatis无法给带有下划线属性赋值问 1.配置问题 <!-- 是否开启自动驼峰命名规则(camel case)映射, --> <setting name="mapUnderscoreToCamelCase" value="true"/> 或者 //开启驼峰映射         bean.getObjec

Mybatis如何从数据库中获取数据存为List类型(存为model)

2022-01-18
目录 从数据库中获取数据存为List类型(存为model) Mybatis存储List类型数据 从数据库中获取数据存为List类型(存为model) 从数据库中获取的数据,存到一个model中,需要注意两点. 一.在dao中,只能用List类型接受结果 二.要在mapper中写清楚resultType //DAO @Override public ArrayList<YourModel> getMainInfo(int id) { // TODO Auto-generated method s

实例详解Java库中的LocalDate类

2022-01-18
目录 Java库中的LocalDate类 Java获取上周指定日的日期 总结 Java库中的LocalDate类 类库设计者决定将保存时间与给时间点命名分开.所以标准Java类库分别包含了两个类:一个用来表示时间点的Date类:另一个是用来表示大家熟悉的日历表示法的LocalDate类. 将时间与日历分开是一种很好的面向对象设计.通常,最好使用不同的类表示不同的概念. 不要使用构造器来构造LocalDate类的对象.实际上,应当使用静态工厂方法代表你调用构造器. 下面表达式 LocalDate.

Mybatis查询时数据丢失的问题及解决

2022-01-18
目录 Mybatis查询时数据丢失 经过排查得出结论 解决办法 Mybatis查询部分字段漏查问题(mysql) Mybatis查询时数据丢失 公司里的实体类和mapper文件均由mybatis逆向工程生成 之前使用myabtis查询时直接使用注解@select(......)时遇到了一个问题. 结果显示数据库查询没有问题,但是有的数据缺没有插入到指定的字段中,如下图中ID成功存储,Z40_ID,Z40_103到Z40_113均失败. 经过排查得出结论 如果数据库命名很规范比如user_name

SpringBoot返回Json对象报错(返回对象为空{})

2022-01-18
目录 1 需求描述 2 代码展示 3 原因分析 4 解决方案 5 效果展示 6 结束语 1 需求描述 我们现在要干一个什么事情呢,我们要在浏览器输入一个请求地址,然后我们的后端就给我返回一个User对象即可,并且我希望以Json的格式返回.这个需求很明确,我们先直观的展示一下效果.发送请求: 接受结果: 2 代码展示 行了,明确了需求我们开始整活儿.首先我们老规矩还是先展示一下目录结构(其中标红的文件使我们今天要用到的): 接下来是具体的文件内容首先呢我们展示一下User.java文件 pack

MybatisPlus如何自定义TypeHandler映射JSON类型为List

2022-01-18
目录 自定义TypeHandler映射JSON类型为List 1. 实体类 2. ListTypeHandler 3. ReportUserListTypeHandler 4. Java 泛型 自定义TypeHandler的使用笔记 类型转换器还可以通过注解配置 java类型和jdbc类型 定义 使用 自定义TypeHandler映射JSON类型为List 1. 实体类 这里只展示需要映射的字段,分别在所需映射的字段和实体类上添加注解. @Data @TableName(value = "rep

聊聊SpringBoot使用Nacos进行服务注册发现与配置管理问题

2022-01-18
前提 最近由于业务发展,需要调研一套完善和主流的基础架构,进行中台化(微服务)的实施,考虑到技术栈切换到SOFAStack.既然整个体系都切换到蚂蚁金服的技术栈,那么自然考虑一些基础组件如服务注册发现.配置管理等都切换为阿里的技术栈.考虑到目前比较热的服务发现组件是Nacos,需要调研SpringBoot服务接入Nacos的可行性,为以后强制要求新服务使用SOFAStack + Nacos的技术栈进行服务开发打下基础. Nacos简介 Nacos英文全称Dynamic Naming and Co

滴滴二面之Kafka如何读写副本消息的

2022-01-18
目录 前言 appendRecords-副本写入 副本读取:fetchMessages 总结 前言 无论是读取副本还是写入副本,都是通过底层的Partition对象完成的,而这些分区对象全部保存在上节课所学的allPartitions字段中.可以说,理解这些字段的用途,是后续我们探索副本管理器类功能的重要前提. 现在,我们就来学习下副本读写功能.整个Kafka的同步机制,本质上就是副本读取+副本写入,搞懂了这两个功能,你就知道了Follower副本是如何同步Leader副本数据的. append

最通俗的白话讲解JDK源码中的ThreadLocal

2022-01-18
目录 引言 ThreadLocal是什么?它能干什么? ThreadLocal实现线程隔离的秘密 为什么ThreadLocal会出现OOM的问题? 内存泄漏演示 内存泄漏问题分析 父子线程的参数传递 总结 引言 其实网上有很多关于ThreadLocal的文章了,有不少文章也已经写的非常好了.但是很多同学反应还有一些部分没有讲解的十分清楚,还是有一定的疑惑没有想的十分清楚.因此本文主要结合常见的一些疑问.ThreadLocal源码.应用实例以注意事项来全面而深入地再详细讲解一遍ThreadLoca

带你了解Java数据结构和算法之队列

2022-01-18
目录 1.队列的基本概念 2.Java模拟单向队列实现 3.双端队列 4.优先级队列 5.总结 1.队列的基本概念 队列(queue)是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表.进行插入操作的端称为队尾,进行删除操作的端称为队头.队列中没有元素时,称为空队列. 队列的数据元素又称为队列元素.在队列中插入一个队列元素称为入队,从队列中删除一个队列元素称为出队.因为队列只允许在一端插入,在

使用 EasyCode生成springboot+mybatis基础程序的实现示例

2022-01-18
目录 一.前言 二.正文 2.1 基础前提 2.1.1springboot配置 2.1.1 基础工具类 2.2 模板设置 2.2.1安装idea插件:EasyCode 2.2.2 设置模板 2.3 生成方法 一.前言 此文将分享我个人使用的一个easycode生成方法,生成之后可以直接运行,这也就意味着,生成的代码会更加规范化.规范化就意味着会有更多的约束. 二.正文 2.1 基础前提 2.1.1springboot配置 引入所需jar包pom.xml加入一下依赖 <dependency> &

mybatis&nbsp;group&nbsp;by&nbsp;substr函数传参报错的解决

2022-01-18
目录 mybatis group by substr传参报错 报异常 原因 使用group by 分组查询返回为null 解决方法 mybatis group by substr传参报错 报异常 ### Cause: java.sql.SQLSyntaxErrorException: ORA-00979: 不是 GROUP BY 表达式 SELECT     SUBSTR( region_code, 1,#{ queryMap.groupCodeLength, jdbcType = INTEGE

Spring&nbsp;AspectJ&nbsp;实现AOP的方法你了解吗

2022-01-18
目录 1.什么是 AspectJ? 2.切入点表达式 AOP 切入点表达式支持多种形式的定义规则: 2.Aspect 通知类型 3.AOP具体实例 ①.创建接口 ②.创建实现类 ③.创建切面类(包含各种通知) ④.创建spring配置文件applicationContext.xml ⑤.测试 4.测试异常通知 5.测试环绕通知 总结 1.什么是 AspectJ? AspectJ是一个面向切面的框架,它扩展了Java语言.AspectJ定义了AOP语法,也可以说 AspectJ 是一个基于 Jav

mybatis mapper.xml中如何根据数据库类型选择对应SQL语句

2022-01-18
目录 mapper.xml根据数据库类型选择对应SQL语句 1.spring-database.xml文件中配置 2.mapper.xml文件中配置 mapper.xml动态SQL语句用法 if trim where set choose(when.otherwise) foreach mapper.xml根据数据库类型选择对应SQL语句 1.spring-database.xml文件中配置   <bean id="vendorProperties" class="or

mybatis接收以逗号分隔的字符串批量查询方式

2022-01-18
目录 接收以逗号分隔的字符串批量查询 如何相互转换逗号分隔的字符串和List 将逗号分隔的字符串转换为List 将List转换为逗号分隔符 接收以逗号分隔的字符串批量查询 <IF test = " supplierIds !=null and supplierIds.indexOf(',') != -1  ">      AND msd.supplier_id NOT IN      <foreach collection = "supplierIds.sp

Java&nbsp;IO之File&nbsp;类详解

2022-01-18
目录 1.File 类的字段 2.File 类的构造方法 3.File 类的常用方法 ①.创建方法 ②.删除方法 ③.判断方法 ④.获取方法 4.File 的一些技巧 总结 File 类:文件和目录路径名的抽象表示. 注意:File 类只能操作文件的属性,文件的内容是不能操作的. 1.File 类的字段 我们知道,各个平台之间的路径分隔符是不一样的. ①.对于UNIX平台,绝对路径名的前缀始终为"/" . 相对路径名没有前缀. 表示根目录的抽象路径名具有前缀"/"和

java&nbsp;springboot邮箱找回密码功能的实现讲解

2022-01-18
目录 一.主要内容 二.邮箱找回密码的思想 三.前台页面 四.注意事项 五.部分实现代码 5.1 页面代码 5.2 发送验证码到注册邮箱的代码 5.3 修改密码 总结 一.主要内容 基于springboot实现密码找回功能. 二.邮箱找回密码的思想 1.输入注册邮箱,点击获取验证码.会将验证码发送到邮箱. 2.用户进入邮箱,查看验证码. 3.用户输入验证码,输入新密码,点击修改密码,完成修改. 三.前台页面 四.注意事项 如果是163或者qq邮箱需要打开授权,以163为例: 如果是阿里的企业邮箱

详解SpringMVC HandlerInterceptor拦截器的使用与参数

2022-01-18
目录 拦截器概念: 拦截器VS过滤器 自定义拦截器开发过程: 拦截器配置项: 多拦截器配置: 拦截器概念: 拦截器( Interceptor)是一种动态拦截方法调用的机制,请求处理过程解析 核心原理: AOP思想 拦截器链:多个拦截器按照一定的顺序,对原始被调用功能进行增强 作用: 在指定的方法调用前后执行预先设定后的的代码 阻止原始方法的执行 拦截器VS过滤器 归属不同: 过滤器属于Servlet技术, 拦截器属于SpringMVC技术拦截内容不同: 过滤器对所有访问进行增强, 拦截器仅针对S