首页
学习
活动
专区
工具
TVP
发布

10km的专栏

专栏成员
553
文章
1221679
阅读量
52
订阅数
java:BeanProperSupport实现复杂类型对象的成员访问
在实际的工程设计中,当我们设计了一个复杂的数据对象,对象中还嵌套有子对象,子对象可能还会有更多的嵌套时,如果没有工具辅助,要获取一个对象的子成员下的子成员,需要写好几行代码逐级获取,这中间还要涉及到判空的问题,如果成员类型是Map/JSON对象那还要从Map中读取子成员,如果是Sting 类型JSON字符串,那获取下面的子成员更麻烦还要涉及解析JSON解析。往涉及到这种复杂的多级嵌套的子成员变量读写,程序代码都会变得很臃肿,繁琐。
10km
2022-11-18
1.8K0
java: 自定义java.util.logging.Logger的日志输出格式,输出IDE(ECLIPSE)能自动识别行号的格式
我们知道在java环境有很不少第三方提供的日志记录库,比如常用的log4j,其实JDK (1.4 or above)本身也提供了日志输出工具,就是 java.util.logging.Logger.但这个工具吧,用也能用,却不好用,聊胜于无。 对于用惯了log4j的我来说,它不好用, 下是用java.util.logging.Logger输出的日志
10km
2022-11-16
9810
jsqlparser:实现基于SQL语法分析的SQL注入攻击检查
之前写过一篇博客:《java:正则表达式检查SQL WHERE条件语句防止注入攻击和常量表达式》,当前时通过正则表达式来检查SQL语句中是否有危险关键字和常量表达式实现SQL语句的注入攻击检查。坦率的说,这个办法是有漏洞的,误判,漏判的概率很大,基于当前我的知识能力,也只能做到这样。 最近学习了jsqlparser,我知道我找到了更好的办法来解决SQL注入攻击检查问题。 jsqlparser是一个java的SQL语句解析器,在上一篇博客:《jsqlparser:基于抽象语法树(AST)遍历SQL语句的语法元素》介绍了如何通过jsqlparser来遍历SQL语句中所有的字段和表名引用。 其实它可以用来进行更复杂的工作,jsqlparser会将一条SQL语句的各种语法元素以抽象语法树(AST,abstract syntax tree)形式解析为很多不同类型对象,通过对AST的遍历就可以对SQL语句进行分析。采用这种方式做SQL注入攻击检查不会有误判,漏判的问题。
10km
2022-11-16
2.8K0
jsqlparser:基于抽象语法树(AST)遍历SQL语句的语法元素
jsqlparser是一个java的SQL语句解析器,基于它可以实现很多之前无法完成的工作。
10km
2022-11-06
2.4K0
spring-boot:The following method did not exist: com.google.gson.GsonBuilder.setLenient()
意思就是找不到com.google.gson.GsonBuilder.setLenient()方法,gson-2.2.4.jar中的GsonBuilder类确没有这个方法。初步判断这应该是gson库的版本不匹配造成的
10km
2022-11-06
8360
java:commons-configuration2与spring的集成
commons-configuration2是apache基金会旗下的开源库,提供了强大的配置文件管理功能,使 Java 应用程序能够从各种来源读取配置数据,可以从以下来源加载配置参数: Properties files XML documents Windows INI files Property list files (plist) JNDI JDBC Datasource System properties Applet parameters Servlet parameters YAML 而且支持多个配置文件组合配置对象以及表达式。总的来说功能要比spring内置的yaml提供更丰富的配置支持, commons-configuration2还很贴心的提供了与Spring集成的实现。
10km
2022-09-30
5640
sql2java-pagehelper:Spring AOP支持
sql2java是我几年年开始写的一个sql2java是一个轻量级数据库(SQL)访问代码(java)生成器。这几年一直在根据工作需要维护升级。本文接续上一篇博客《sql2java-pagehelper:参照Mybatis-PageHelper实现分页查询》介绍Sql2java-pagehelper提供的分页查询(PageHelper)和动态SQL语句(WhereHelper)功能对Spring的支持
10km
2022-09-27
3890
sql2java-pagehelper:参照Mybatis-PageHelper实现分页查询
sql2java是我几年年开始写的一个sql2java是一个轻量级数据库(SQL)访问代码(java)生成器。这几年一直在根据工作需要维护升级,最近的项目中需要对数据库的记录提供分页查询功能,于是我参照Mybatis-PageHelper并借用其外部数据格式为sql2java实现的分页功能,将其封装为一个sql2java子项目sqlj2ava-pagehelper。使用方式与Mybatis-Pagehelper基本一致。
10km
2022-09-27
3370
sql2java:WhereHelper基于Beanshell(bsh)动态生成SQL语句
BeanShell是一个小型嵌入式Java源代码解释器,具有对象脚本语言特性,能够动态地执行标准JAVA语法,并利用在JavaScript和Perl中常见的的松散类型、命令、闭包等通用脚本来对其进行拓展。BeanShell不仅仅可以通过运行其内部的脚本来处理Java应用程序,还可以在运行过程中动态执行你java应用程序执行java代码。因为BeanShell是用java写的,运行在同一个虚拟机的应用程序,因此可以自由地引用对象脚本并返回结果。 基于Beanshell可以实现很多有意思的功能,比如最近的工作中为了给前端提供灵活的数据库条件查询,我利用Beanshell的能力,可以实现了WhereHelper用于根据前端提供的参数,动态生成SELECT查询语句,大大简化了代码复杂度。 本文介绍WhereHelper的使用
10km
2022-09-27
1.1K0
sql2java-excel(二):基于apache poi实现数据库表的导出的spring web支持
sql2java是我几年年开始写的一个sql2java是一个轻量级数据库(SQL)访问代码(java)生成器。这几年一直在根据工作需要维护升级,最近的项目中需要对数据库的记录提供导出excel的功能。 就开始学习apache的POI,参照网上的示例实现了单张表的导出。并进一步将它封装成一个通用库成为sql2java下的子项目sql2java-excel.以方便在其他项目中技术复用。 本文开始介绍sql2java-excel的使用spring 支持的部分
10km
2022-09-27
1.6K0
sql2java-excel(一):基于apache poi实现数据库表的导出及支持spring web
sql2java是我几年年开始写的一个sql2java是一个轻量级数据库(SQL)访问代码(java)生成器。这几年一直在根据工作需要维护升级,最近的项目中需要对数据库的记录提供导出excel的功能。 就开始学习apache的POI,参照网上的示例实现了单张表的导出。并进一步将它封装成一个通用库成为sql2java下的子项目sql2java-excel.以方便在其他项目中技术复用。 本文开始介绍sql2java-excel的使用.
10km
2022-09-27
8010
java:蛇形命名法格式(snake-case)字符串变量名转驼峰命名法格式(camel-case)
在变量命名的习惯方法有多种,不同的语言变量都有约定俗成的命名方式,比如常见就是蛇峰命名法(camel-case)和蛇形命名法(snake-case),比如Java中的命名习惯就是用camel-case,而SQL语言和C语言这些历史更久的设计语言命名习惯是snake-case.
10km
2022-09-26
1.4K0
beanshell入门:脚本中引用自定义的变量和方法和定义运行时变量
Beanshell (bsh) 是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性。
10km
2022-09-26
1.9K0
java/poi 调整Excel 列宽支持自适应中文字符宽度
apache/poi是apache旗下用于读写Microsoft Office 二进制文件和OOXML 格式文件的开源库。用它来进行excel文件的导出是很趁手的。 一般来说可以直接使用 Sheet.autoSizeColumn方法自动调整每列的宽度。但是遇到包含中文的列,autoSizeColumn方法计算的列宽是不正确的,算出的宽度不能完整显示中文内容。最近项目中就遇到了这个问题,于是参考网上的各类文章,自己实现了自动适应中文字符宽度的方法
10km
2022-09-16
2.8K1
spring/jackson:实现对保存JSON字符串的字段自动序列化和反序列化
对于spring-web项目,在数据库设计时,当我们想增加一个字段时,并不希望修改表结构,希望设计一个专用的扩展字段,将增加的扩展字段以一个JSON字符串形式保存在这个专用字段中。 spring对JSON的序列化和反序列化是依赖jackson来完成的。 数据发送给前端的时候,我们希望jackson在序列化一个数据库记录对象时以JSON的形式返回这个JSON扩展字段的内容,而不是一个String, 同时前端也能以一个JSON的形式定义这个JSON扩展字段,服务端在收到请求jackson在反序列化时能自动将这个JSON字段反序列化为String.这样省去了手工写代码转换的过程才是最方便的。 举例说明一下吧,以下是一个数据库记录对象,props字段为一个JSON扩展字段可以存储任意字段数据
10km
2022-09-07
1.8K0
spring-boot:对日期(Date)类型数据的序列化
spring将Java 数据类型的序列和反序列化为JSON字符串是依赖jackson(com.fasterxml.jackson.core:jackson-core)库来实现的,对于Java Bean中的Date类型字段,可以使用@JsonFormat注释来指定日期格式,示例如下:
10km
2022-06-07
2.7K0
maven:prfile应用示例,通过profile控制在不同的平台依赖对应的库
在基于maven的项目开发中,肯定会使用一些第三方库,有一些第三方库是有平台限制的,比如google的核心库guva,在22版本以后就区分为标准jre平台和android平台,如下图:
10km
2022-05-07
4660
libjpeg:读取jpeg头获取图像基本信息(jpeg_read_header)
libjpeg中的jpeg_read_header函数用于读取jpeg数据头部的基本信息,以下为jpeg_read_header的定义。
10km
2022-05-07
1.6K0
libjpeg:实现jpeg内存解压缩塈转换色彩空间/压缩分辨率
前一篇博客《libjpeg:实现jpeg内存压缩暨error_exit错误异常处理和个性化参数设置》实现了jpeg图像的内存压缩,本文来讨论jpeg图像内存解压缩的过程以及让libjpeg在解压缩时就将图像转灰度或其他色彩空间。
10km
2022-05-07
1.4K0
libjpeg:实现jpeg内存压缩暨error_exit错误异常处理和个性化参数设置
libjpeg-turbo是与libjpeg接口兼容的一个jpeg编/解码库,其主要的特点就是利用SIMD指令(如X86架构的MMX/SSE/SSE2,ARM架构的NEON)来加速jpeg图像的编/解码,相比被广泛使用的libjpeg,编码和解码性能提高2~4倍左右。 本文介绍的内容适用于libjpeg-turbo和libjpeg(80以上版本) 关于如何用gcc对libjpeg-turbo编译,请参考我之前的一篇的博文《mingw(gcc)编译libjpeg-turbo》
10km
2022-05-07
1K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档