Java Hutool 使用介绍

发布时间: 更新时间: 总字数:1744 阅读时间:4m 作者: IP上海 分享 网址

Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关 API 的学习成本,提高工作效率,使 Java 拥有函数式语言般的优雅

介绍

Hutool 是一个功能丰富且易用的 Java 工具库,它通过静态方法封装,旨在帮助开发者快速、便捷地完成各类开发任务。hutool-all 包是 Hutool 的一个聚合包,它包含了 Hutool 所有的模块,使得开发者只需引入一个依赖即可使用 Hutool 提供的所有功能,无需单独引入各个模块。

Hutool 的理念是“用一个工具方法代替一段复杂代码,从而最大限度地避免‘复制粘贴’代码的问题,彻底改变我们写代码的方式。”

hutool-all 包的作用

  • 简化依赖管理: 引入 hutool-all 一个包,即可使用 Hutool 的所有功能,避免了单独引入多个模块的繁琐。
  • 提高开发效率: 提供了大量常用工具类和方法,涵盖了字符串、数字、集合、日期、文件、IO、加密、数据库 JDBC、JSON、HTTP 客户端等各个方面,大大减少了开发者编写重复代码的时间。
  • 降低学习成本: 通过静态方法封装,使得相关 API 的使用更加简单直观,降低了学习成本。
  • 代码简洁优雅: 许多复杂的操作通过 Hutool 的工具方法可以一句话搞定,使得代码更加简洁和可读。
  • 避免常见错误: Hutool 对一些常用的操作进行了完善的封装,有助于避免因封装不完善而引入的潜在 bug。

常用的使用示例

以下是一些 Hutool 常用模块的简单示例:

hutool-core(核心工具)

字符串操作

import cn.hutool.core.util.StrUtil;

public class StrUtilExample {
    public static void main(String[] args) {
        String str = "  hello world  ";
        // 判断是否为空
        System.out.println("isEmpty: " + StrUtil.isEmpty(str)); // false
        System.out.println("isBlank: " + StrUtil.isBlank(str)); // false

        // 去除空白
        System.out.println("trim: " + StrUtil.trim(str)); // "hello world"

        // 拼接字符串
        System.out.println("join: " + StrUtil.join("-", "a", "b", "c")); // "a-b-c"

        // 格式化字符串
        System.out.println("format: " + StrUtil.format("Hello {}, welcome to {}.", "Hutool", "Java world")); // "Hello Hutool, welcome to Java world."
    }
}

日期时间操作

import cn.hutool.core.date.DateUtil;
import java.util.Date;

public class DateUtilExample {
    public static void main(String[] args) {
        Date date = new Date();
        // 格式化日期
        String dateStr = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss");
        System.out.println("格式化日期: " + dateStr);

        // 解析日期字符串
        Date parseDate = DateUtil.parse("2023-01-01 12:30:00");
        System.out.println("解析日期: " + parseDate);

        // 获取当前日期是周几
        System.out.println("今天是周几: " + DateUtil.dayOfWeekEnum(date).toChinese());

        // 计算两个日期之间的时间差
        long betweenDays = DateUtil.betweenDay(DateUtil.parse("2023-01-01"), DateUtil.parse("2023-01-10"));
        System.out.println("天数差: " + betweenDays);
    }
}

Bean 操作

import cn.hutool.core.bean.BeanUtil;
import lombok.Data;

@Data
class User {
    private String name;
    private Integer age;
}

public class BeanUtilExample {
    public static void main(String[] args) {
        User user1 = new User();
        user1.setName("Alice");
        user1.setAge(25);

        // 将Bean转换为Map
        java.util.Map<String, Object> map = BeanUtil.beanToMap(user1);
        System.out.println("Bean to Map: " + map);

        // 将Map转换为Bean
        User user2 = BeanUtil.mapToBean(map, User.class, true, null);
        System.out.println("Map to Bean: " + user2.getName() + ", " + user2.getAge());

        // 属性拷贝
        User user3 = new User();
        BeanUtil.copyProperties(user1, user3);
        System.out.println("Copy properties: " + user3.getName() + ", " + user3.getAge());
    }
}

hutool-http (HTTP 客户端)

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;

public class HttpUtilExample {
    public static void main(String[] args) {
        // GET 请求
        String result = HttpRequest.get("https://www.baidu.com").execute().body();
        System.out.println("GET 请求结果:\n" + result.substring(0, 200) + "..."); // 截取部分显示

        // POST 请求
        String postResult = HttpRequest.post("https://www.example.com/api")
                .header("Content-Type", "application/json")
                .body("{\"name\": \"test\", \"value\": \"123\"}")
                .execute().body();
        System.out.println("POST 请求结果:\n" + postResult); // 实际测试时请替换为可用的API
    }
}

hutool-json (JSON 工具)

import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;

public class JsonUtilExample {
    public static void main(String[] args) {
        // 创建 JSONObject
        JSONObject jsonObject = JSONUtil.createObj()
                .put("name", "张三")
                .put("age", 30)
                .put("isStudent", false);
        System.out.println("JSONObject: " + jsonObject);

        // 获取值
        String name = jsonObject.getStr("name");
        System.out.println("Name: " + name);

        // 创建 JSONArray
        JSONArray jsonArray = JSONUtil.createArray()
                .put("apple")
                .put("banana")
                .put("orange");
        System.out.println("JSONArray: " + jsonArray);

        // 解析 JSON 字符串
        String jsonStr = "{\"city\": \"北京\", \"temp\": 25}";
        JSONObject parsedJson = JSONUtil.parseObj(jsonStr);
        System.out.println("解析后的JSON: " + parsedJson.getStr("city"));
    }
}

hutool-db (JDBC 封装)

Hutool-db 模块简化了 JDBC 操作,提供了 ActiveRecord 思想的数据库操作。需要配置数据源。

// 假设你已经配置了数据源,例如通过 hutool-setting 模块或 Spring 等方式。
// 引入相关类:
// import cn.hutool.db.Db;
// import cn.hutool.db.Entity;
// import java.sql.SQLException;
// import java.util.List;

public class DbUtilExample {
    public static void main(String[] args) throws SQLException {
        // 示例:插入数据
        // Entity entity = Entity.create("user")
        //         .set("name", "张三")
        //         .set("age", 20);
        // int affectedRows = Db.use().insert(entity);
        // System.out.println("插入行数: " + affectedRows);

        // 示例:查询数据
        // List<Entity> users = Db.use().findAll("user");
        // for (Entity user : users) {
        //     System.out.println("用户: " + user.getStr("name") + ", " + user.getInt("age"));
        // }

        // 示例:更新数据
        // int updatedRows = Db.use().update(
        //         Entity.create().set("age", 21), // 更新的字段
        //         Entity.create("user").set("name", "张三") // where 条件
        // );
        // System.out.println("更新行数: " + updatedRows);

        // 示例:删除数据
        // int deletedRows = Db.use().del(Entity.create("user").set("name", "张三"));
        // System.out.println("删除行数: " + deletedRows);
    }
}

如何引入 hutool-all

如果你使用 Maven,在 pom.xml 中添加如下依赖:

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.27</version> </dependency>

如果你使用 Gradle,在 build.gradle 中添加如下依赖:

implementation 'cn.hutool:hutool-all:5.8.27' // 请使用最新稳定版本

总结

hutool-all 包是一个非常实用的 Java 工具库,它提供了丰富而便捷的工具方法,可以大幅提升开发效率,简化代码,是 Java 开发者日常工作中不可或缺的利器。通过上面的示例,你可以对 Hutool 的常用功能有一个初步的了解。建议查阅 Hutool 官方文档获取更详细的使用说明和更多模块的介绍。

参考

  1. https://hutool.cn/
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数