java工具类使用_JavaUtils

JavaUtils V0.0.3.20200806_beta

个人使用java工具类

1.工具类明细

jdbcUtil 数据库简单操作工具类

LambdaUtil lambda完善工具类

ListUtil 数组工具类

StringUtil 字符串工具类

TreeUtil 属性结构工具类

2.工具类详解

2.1 LambdaUtil

2.1.1 consumerWithIndex

为foreach循环提供索引, 索引从0开始

// 循环list, 设置排序为当前索引+1

list.forEach(LambdaUtils.consumerWithIndex((o, index) -> {

o.setSortIndex(index + 1);

}));

2.1.2 consumerWrapper

为foreach循环提供异常处理方法

list.forEach(LambdaUtils.consumerWrapper(i -> System.out.println(10/i), IOException.class))

2.2 ListUtil

2.2.1 deepCopy

数组深拷贝

实体类必须实现序列化接口

User user = new User('菁菁');

List source = new ArrayList(){{add(user);}};

List target = ListUtils.deepCopy(source);

user.setName('悠悠');

System.out.println(source.get(0).getName()); // 悠悠

System.out.println(target.get(0).getName()); // 菁菁

2.3 TreeUtil

树形结构工具类, 所有对象需继承cn.hyh.models.BaseTreeNode

2.3.1 buildTree

将无序数组构建为树形结构

List test = new ArrayList<>();

test.add(TestEntity.builder().id("1").name("测试1").build());

test.add(TestEntity.builder().id("2").name("测试2").build());

test.add(TestEntity.builder().id("3").name("测试3").parent(TestEntity.builder().id("1").build()).build());

test.add(TestEntity.builder().id("4").name("测试4").parent(TestEntity.builder().id("2").build()).build());

test.add(TestEntity.builder().id("5").name("测试5").parent(TestEntity.builder().id("3").build()).build());

List result = TreeUtils.buildTree(test);

System.out.println(JSON.toJSON(result));

// json结果如下

[

{

"id": "1",

"name": "测试1",

"children": [

{

"id": "3",

"name": "测试3",

"parent": {

"id": "1"

},

"children": [

{

"id": "5",

"name": "测试5",

"parent": {

"id": "3"

},

"children": [ ]

}

]

}

]

},

{

"id": "2",

"name": "测试2",

"children": [

{

"id": "4",

"name": "测试4",

"parent": {

"id": "2"

},

"children": [ ]

}

]

}

]

2.4 JdbcUtil

基于common-dbutils的用于临时操作数据库的工具类, 未配置线程池

后续学习了Hutools中的Db, 感觉更符合身为Python爱好者的我的风格, 但实现方式确实不同, 保留此工具类, 但不会再进行维护

2.4.1 使用说明

//实现抽象类完成数据库配置

@Component

@ConfigurationProperties(prefix = "database.mysql")

@Data

class Mysql extends BaseDatabase {

}

//初始化工具类

@Autowired

private Mysql mysql;

JdbcUtil jdbcUtil = new JdbcUtil<>(mysql);

除getConnection外, 所有方法均会自动关闭连接

2.4.2 getConnection

获取数据库连接

Connection connection = jdbcUtils.getConnection();

2.4.3 get

针对一行一列数据进行查询, 设计用于count语句

Long userNum = (Long) jdbcUtils.get("select count(*) from t_user");

2.4.4 get

获取一行数据, 转化为实体类

User user = jdbcUtils.get("select * from t_user where id = ?", User.class, 1);

2.4.5 list

获取列表数据, 转化为实体类数组

List users = jdbcUtils.list("select * from t_user where sex = ?", User.class, 99);

2.5 StringUtil

因Hutools中对于驼峰转换缺少自定义分隔符, 故特写此工具类

2.5.1 camelCase

分隔符形式的字符串转驼峰式

String test = "my-love-dxl";

StringUtils.camelCase(test); // myLoveDxl

StringUtils.camelCase(test, "-"); // myLoveDxl

StringUtils.camelCase(test, "-", true); // MyLoveDxl

2.6 FileUtil

文件工具类

2.6.1 downloadFromUrl

从url下载文件

try {

FileUtil.downloadFromUrl("http://hyh_cut/document.rar", "C:\\Data\\Temp", "test.rar");

System.out.println("下载成功");

} catch (IOException e) {

e.printStackTrace();

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值