网站模版网 下载传统媒体网站建设

web/2025/9/29 2:12:50/文章来源:
网站模版网 下载,传统媒体网站建设,沧州住房和城乡建设部网站,ui设计周末培训机构一、概述 1.1介绍 Hutool是一个小而全的Java工具类库#xff0c;通过静态方法封装#xff0c;降低相关API的学习成本#xff0c;提高工作效率#xff0c;使Java拥有函数式语言般的优雅#xff0c;让Java语言也可以“甜甜的”。 Hutool中的工具方法来自于每个用户的精雕细…一、概述 1.1介绍 Hutool是一个小而全的Java工具类库通过静态方法封装降低相关API的学习成本提高工作效率使Java拥有函数式语言般的优雅让Java语言也可以“甜甜的”。 Hutool中的工具方法来自于每个用户的精雕细琢它涵盖了Java开发底层代码中的方方面面它既是大型项目开发中解决小问题的利器也是小型项目中的效率担当 Hutool是项目中“util”包友好的替代它节省了开发人员对项目中公用类和公用工具方法的封装时间使开发专注于业务同时可以最大限度的避免封装不完善带来的bug。 1.2Hutool名称的由来 Hutool Hu tool是原公司项目底层代码剥离后的开源库“Hu”是公司名称的表示tool表示工具。Hutool谐音“糊涂”一方面简洁易懂一方面寓意“难得糊 Hutool的目标是使用一个工具方法代替一段复杂代码从而最大限度的避免“复制粘贴”代码的问题彻底改变我们写代码的方式。 以计算MD5为例 - 【以前】打开搜索引擎 - 搜“Java MD5加密” - 打开某篇博客- 复制粘贴 - 改改好用 - 【现在】引入Hutool - SecureUtil.md5()  Hutool的存在就是为了减少代码搜索成本避免网络上参差不齐的代码出现导致的bug。 1.3包含组件核心 一个Java基础工具类对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装组成各种Util工具类同时提供以下组件 模块介绍hutool-aopJDK动态代理封装提供非IOC下的切面支持hutool-bloomFilter布隆过滤提供一些Hash算法的布隆过滤hutool-cache简单缓存实现hutool-core核心包括Bean操作、日期、各种Util等hutool-cron定时任务模块提供类Crontab表达式的定时任务hutool-crypto加密解密模块提供对称、非对称和摘要算法封装hutool-dbJDBC封装后的数据操作基于ActiveRecord思想hutool-dfa基于DFA模型的多关键字查找hutool-extra扩展模块对第三方封装模板引擎、邮件、Servlet、二维码、Emoji、FTP、分词等hutool-http基于HttpUrlConnection的Http客户端封装hutool-log自动识别日志实现的日志门面hutool-script脚本执行封装例如Javascripthutool-setting功能更强大的Setting配置文件和Properties封装hutool-system系统参数调用封装JVM信息等hutool-jsonJSON实现hutool-captcha图片验证码实现hutool-poi针对POI中Excel和Word的封装hutool-socket基于Java的NIO和AIO的Socket封装hutool-jwtJSON Web Token (JWT)封装实现 1.4官方文档 官网Hutool — A set of tools that keep Java sweet. 参考文档简介 | Hutool  API文档Document  1.5导入HuTool HuTool使用非常简单直接在项目中引入如下依赖即可: dependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion5.3.7/version /dependency 二、常用工具类 2.1Convert 问题 在Java开发中我们要面对各种各样的类型转换问题尤其是从命令行获取的用户参数、从HttpRequest获取的Parameter等等这些参数类型多种多样我们怎么去转换他们呢常用的办法是先整成String然后调用XXX.parseXXX方法还要承受转换失败的风险不得不加一层try catch这个小小的过程混迹在业务代码中会显得非常难看和臃肿。 类型转换工具类用于各种类型数据的转换。 Convert类可以说是一个工具方法类里面封装了针对Java常见类型的转换用于简化类型转换。**Convert**类中大部分方法为toXXX参数为Object可以实现将任意可能的类型转换为指定类型。同时支持第二个参数defaultValue用于在转换失败时返回一个默认值。 package com.yanyu.redisjedistest.demo;import cn.hutool.core.convert.Convert; import lombok.extern.slf4j.Slf4j;import java.util.Date; import java.util.List;Slf4j public class hutool1 {public void covert() {//转换为字符串int a 1;String aStr Convert.toStr(a);log.info(aStr);//转换为指定类型数组String[] b {1, 2, 3, 4};Integer[] bArr Convert.toIntArray(b);log.info(bArr.toString());//转换为日期对象String dateStr 2020-09-17;Date date Convert.toDate(dateStr);log.info(date.toString());//转换为列表String[] strArr {a, b, c, d};ListString strList Convert.toList(String.class, strArr);log.info(strList.toString());}public static void main(String[] args) {hutool1 hutool1 new hutool1();hutool1.covert();} }2.2DateUtil 日期时间工具类定义了一些常用的日期时间操作方法。 public void dateUtil() {//Date、long、Calendar之间的相互转换//当前时间Date date DateUtil.date();log.info(date.toString());//Calendar转Datedate DateUtil.date(Calendar.getInstance());//时间戳转Datedate DateUtil.date(System.currentTimeMillis());//自动识别格式转换String dateStr 2020-09-17;date DateUtil.parse(dateStr);//自定义格式化转换date DateUtil.parse(dateStr, yyyy-MM-dd);//格式化输出日期String format DateUtil.format(date, yyyy-MM-dd);log.info(format.toString());//获得年的部分int year DateUtil.year(date);//获得月份从0开始计数int month DateUtil.month(date);//获取某天的开始、结束时间Date beginOfDay DateUtil.beginOfDay(date);Date endOfDay DateUtil.endOfDay(date);//计算偏移后的日期时间Date newDate DateUtil.offset(date, DateField.DAY_OF_MONTH, 2);//计算日期时间之间的偏移量long betweenDay DateUtil.between(date, newDate, DateUnit.DAY);} 2.3ReflectUtil Java反射工具类可用于反射获取类的方法及创建对象。 public void reflectUtil() {//获取某个类的所有方法Method[] methods ReflectUtil.getMethods(Dog.class);//获取某个类的指定方法Method method ReflectUtil.getMethod(Dog.class, getName);//使用反射来创建对象Dog dog ReflectUtil.newInstance(Dog.class);//反射执行对象的方法ReflectUtil.invoke(dog, setName,大黄);log.info(dog.getName()); }Dog Data Builder NoArgsConstructor AllArgsConstructor public class Dog {private String name;private Float weight; }2.4NumberUtil public void numberUtil() {double n1 1.234;double n2 1.234;double result;//对float、double、BigDecimal做加减乘除操作result NumberUtil.add(n1, n2);log.info(String.valueOf(result));result NumberUtil.sub(n1, n2);log.info(String.valueOf(result));result NumberUtil.mul(n1, n2);log.info(String.valueOf(result));result NumberUtil.div(n1, n2);log.info(String.valueOf(result));//保留两位小数BigDecimal roundNum NumberUtil.round(n1, 2);log.info(roundNum.toString());String n3 1.234;//判断是否为数字、整数、浮点数NumberUtil.isNumber(n3);NumberUtil.isInteger(n3);NumberUtil.isDouble(n3);} 2.5CollUtil 集合操作的工具类定义了一些常用的集合操作。 public void collUtil() {//数组转换为列表String[] array new String[]{a, b, c, d, e};ListString list CollUtil.newArrayList(array);//join数组转字符串时添加连接符号String joinStr CollUtil.join(list, ,);log.info(collUtil join:{}, joinStr);//将以连接符号分隔的字符串再转换为列表ListString splitList StrUtil.split(joinStr, ,);log.info(collUtil split:{}, splitList);//创建新的Map、Set、ListHashMapObject, Object newMap CollUtil.newHashMap();HashSetObject newHashSet CollUtil.newHashSet();ArrayListObject newList CollUtil.newArrayList();//判断列表是否为空CollUtil.isEmpty(list);CollUtil.isNotEmpty(list);} 2.6SecureUtil public void secureUtil() {// 加密String str 123456;String key secretKey;byte[] keyBytes Arrays.copyOf(key.getBytes(), 16);String encryptedStr SecureUtil.aes(keyBytes).encryptBase64(str);log.info(Encrypted string: {}, encryptedStr);// 解密String decryptedStr SecureUtil.aes(keyBytes).decryptStr(encryptedStr);log.info(Decrypted string: {}, decryptedStr);} 2.7JSONUtil JSON 解析工具类针对 JSONObject 和 JSONArray 的静态快捷方法集合。 public void jsonUtil() {Dog dog new Dog();dog.setName(大黄);dog.setWeight(5.14f);//对象转化为JSON字符串String jsonStr JSONUtil.parse(dog).toString();log.info(jsonUtil parse:{}, jsonStr);//JSON字符串转化为对象Dog dogBean JSONUtil.toBean(jsonStr, Dog.class);log.info(jsonUtil toBean:{}, dogBean);ListDog dogList new ArrayList();dogList.add(dog);String jsonListStr JSONUtil.parse(dogList).toString();//JSON字符串转化为列表dogList JSONUtil.toList(new JSONArray(jsonListStr), Dog.class);log.info(jsonUtil toList:{}, dogList); }2.8RandomUtil 随机工具类RandomUtil 主要针对 JDK 中 Random 对象做封装。 Test(description RandomUtil使用随机工具类) public void randomUtil() {int result;String uuid;//获得指定范围内的随机数result RandomUtil.randomInt(1, 100);log.info(randomInt:{},StrUtil.toString(result));//获得随机UUIDuuid RandomUtil.randomUUID();log.info(randomUUID:{}, uuid); }三、实战exexcel开发 数据库 create table cf_group_user (id int unsigned auto_increment comment idprimary key,group_id int unsigned not null comment 组织id,nickname char(30) not null comment 姓名,sex tinyint unsigned not null comment 性别(1:男2:女),born_time datetime not null comment 出生日期,photo varchar(255) not null comment 形象照片,home_address varchar(255) not null comment 家庭地址,mobile int not null comment 联系电话,post varchar(255) not null comment 职务信息 )comment 组织用户信息表 collate utf8_unicode_ci;create index auth_idon cf_group_user (auth_id);create index group_idon cf_group_user (group_id);create index mobileon cf_group_user (mobile);实体类 /*** 组织用户信息表* TableName cf_group_user*/ TableName(value cf_group_user) Data public class GroupUser implements Serializable {/*** id*/TableId(type IdType.AUTO)private Integer id;/*** 组织id*/private Integer groupId;/*** 姓名*/NotBlank(message 姓名不可为空)private String nickname;/*** 性别(0:默认1:男2:女)*/NotBlank(message 性别不可为空)private Integer sex;/*** 出生日期*/NotBlank(message 出生日期不可为空)private Date bornTime;/*** 形象照片*/NotBlank(message 形象照片不可为空)private String photo;/*** 家庭地址*/NotBlank(message 家庭地址不可为空)private String homeAddress;/*** 联系电话*/NotBlank(message 联系电话不可为空)private Integer mobile;/*** 实名信息*/private String authId;/*** 职务信息*/NotNull(message 职务不可为空)private String post; }在工程中先确定使用的字段构建模板根据字段构建excel 的模板。这里的示例如下 //controller层 //返回模板RequestMapping(/getExcelTemplate)public void getExcelTemplate(HttpServletResponse response) {groupUserService.getExcelTemplate(response);}//sevice层 void getExcelTemplate(HttpServletResponse response);//impl Overridepublic void getExcelTemplate(HttpServletResponse response) {try {// 1 读取对象final ExcelReader reader ExcelUtil.getReader(ResourceUtil.getStream(templates/group.xlsx));ListListObject lists reader.read();ExcelWriter writer ExcelUtil.getWriter(true);writer.write(lists);response.setHeader(Content-disposition, attachment;filename URLEncoder.encode(group.xlsx, UTF-8));response.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet);// 2 写出对象ServletOutputStream outputStream response.getOutputStream();// 通过IO写出我们的表格对象writer.flush(outputStream, true);writer.close();IoUtil.close(outputStream);} catch (IOException e) {log.error(EducationServiceImpl [export] 输出到响应流失败, e);throw new APIException(导出Excel异常);}}这里我使用的是三层构建在controller 层中暴露接口进行调用所有的具体实现进行抽象。 //导入信息RequestMapping(/importStudent)public R importStudent(RequestParam MultipartFile file) {try {boolean userInfo groupUserService.getUserInfo(file);if(userInfo) return R.success();} catch (IOException e) {log.error(EducationController [getEducation] 获取输入流失败, e);throw new APIException(获取输入流失败);}return R.error();}//导出信息RequestMapping(/export)public void export(RequestBody PageVo pageVo, HttpServletResponse response) {groupUserService.export(pageVo, response);}void export(PageVo pageVo, HttpServletResponse response);boolean getUserInfo(MultipartFile file) throws IOException;Overridepublic void export(PageVo pageVo, HttpServletResponse response) {// 从数据库查出数据对象封装成mapfinal ListMapString, Object educationList this.page(new Page(pageVo.getPage(), pageVo.getLimit()), Wrappers.lambdaQuery()).getRecords().stream()// 封装成 Map 并且放入 List.map(item - {final MapString, Object map new LinkedHashMap();// 错误这里需要根据表中字段名称进行命名map.put(nickname, item.getNickname());map.put(sex, item.getSex());map.put(mobile, item.getMobile());map.put(bornTime, item.getBornTime());map.put(homeAddress, item.getHomeAddress());map.put(post, item.getPost());return map;}).collect(Collectors.toList());// 准备将数据集合封装成Excel对象ExcelWriter writer ExcelUtil.getWriter(true);// 通过工具类创建writer并且进行别名writer.addHeaderAlias(nickname, 姓名);writer.addHeaderAlias(sex, 性别( 0 表示男 1 表示 女));writer.addHeaderAlias(mobile, 电话);writer.addHeaderAlias(bornTime, 出生日期);writer.addHeaderAlias(homeAddress, 家庭地址);writer.addHeaderAlias(post, 职位);// 准备将对象写入我们的 Listwriter.write(educationList, true);try {// 获取我们的输出流final OutputStream output response.getOutputStream();response.setHeader(Content-disposition, attachment;filename URLEncoder.encode(group.xlsx, UTF-8));response.setContentType(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet);writer.flush(output, true);writer.close();// 这里可以自行关闭资源或者写一个关闭资源的工具类IoUtil.close(output);} catch (IOException e) {log.error(EducationServiceImpl [export] 输出到响应流失败, e);throw new APIException(导出Excel异常);}}Overridepublic boolean getUserInfo(MultipartFile file) throws IOException {ExcelReader reader ExcelUtil.getReader(file.getInputStream());HashMapString, String head new HashMap(6);head.put(姓名,nickname);head.put(性别( 0 表示男 1 表示 女),sex);head.put(电话,mobile);head.put(出生日期, bornTime);head.put(家庭地址,homeAddress);head.put(职位,post);reader.setHeaderAlias(head);ListGroupUser read reader.read(0, 1, GroupUser.class);Group group groupService.getOne(new QueryWrapperGroup().eq(uid, UserConstant.USER_ID));for (GroupUser user : read) {user.setGroupId(group.getId());//TODO 默认图片user.setPhoto(https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png);user.setStatus(1);user.setCreateTime(new DateTime());if(!this.save(user))return false;}return true;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83637.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

青岛网站设计建立公司中国建行官方网站

1 为什么向AMSAT社区提及VPX / VNX 1.1VPX是包括卫星在内的最新一代军用车辆增长最快的标准 VITA 65 – 面向地面车辆的 OpenVPX文献检索将揭示在许多商业和军事坚固型系统应用中的广泛应用VITA 78 – AFRL和工业界正在开发用于卫星的“SpaceVPX”和“Space VPX Lite” 1.2 …

做网站需要的知识做网站公司哪个比较好

前段时间做一个小项目,为了同时存储多条数据,其中有一个功能是解析Excel并把其中的数据存入对应数据库中。花了两天时间,不过一天多是因为用了"upload"关键字作为URL从而导致总报同一个错,最后在同学的帮助下顺利解决&a…

长沙网站建设价中学生做的网站有哪些方面

awk的脚本套路是: awk的脚步部分最好用一对单引号将 ‘BEGIN{} /pattern1/{}…/patternN/{} END{}’ 套起来, 因为常用到$号, $号在单引号中不会被转义, 在双引号中有取值的含义 awk -F 自定义分隔符 BEGIN{开始块} /pattern1/{操作pattern1过滤的行的块} /pattern2/{操作patt…

番禺建设工程交易中心网站免费网站制作多少钱

目录 1 redo log(重做日志)2 undo log(回滚日志)3 Binlog(二进制日志)4 两阶段提交4.1 执行过程4.2 系统崩溃后重启如何刷新数据4.3 redo log 和 bin log区别 MySQL是一个关系型数据库管理系统,…

玩具网站规划说明书购物网站微信小程序注册方式

5 月 8 日,上海交通大学电子信息与电气工程学院(简称电院)与阿里巴巴集团宣布共同成立人工智能与系统联合实验室(后称“联合实验室”),并在上海交大闵行校区举行了揭牌仪式。 上海交大电院副院长王贺升教授…

个人公司网站建设千年之恋网页制作代码

3 存储 3.1 存储引擎 3、InnoDB 的四大特性? InnoDB 是 MySQL 数据库中最常用的存储引擎之一,它的四大特性通常指的是: ACID 兼容性: 原子性 (Atomicity): 保证事务内的操作要么全部成功,要么全部失败,不会出现中间状态。例如,银行转账操作,从一个账户向另一个账户转…

网站 什么语言开发网站 怎么做百度才能搜索出来

ipython开发环境搭建以及pandas快速入门0.开发环境搭建技巧网页版ipython:ipython notebooknumpy1.pandas 快速入门一导入创建对象2. pandas 快速入门二空数据处理apply的用法count和mode函数数据合并3. pandas 快速入门三数据整形数据透视时间序列数据可视化数据载…

用户体验较好的网站移动互联网开发课程设计选题

😆😆😆感谢大家的观看😆😆 🌹 reshape 函数 transpose 和 permute 函数 view 和 contigous 函数 squeeze 和 unsqueeze 函数 在搭建网络模型时,掌握对张量形状的操作是非常重要的&#xff…

wordpress博客网站描述在哪里贵州企业网站建设公司

从源码解析Kruise原地升级原理 本文从源码的角度分析 Kruise 原地升级相关功能的实现。 本篇Kruise版本为v1.5.2。 Kruise项目地址: https://github.com/openkruise/kruise 更多云原生、K8S相关文章请点击【专栏】查看! 原地升级的概念 当我们使用deployment等Wor…

做企业网站选百度云还是阿里云网站一定也做数据库吗

idea打开工程的时候包名叠在一起了 点击箭头处按钮,把第一第二行勾去掉 如下 最终效果

建立内部网站需要多少钱专业app开发

目录 专栏导读之前的课程1、小球类设计2、挡板类的设计3、砖块类4、砖块与小球的边界碰撞检测5、检测到碰撞,删除砖块,改变运动方向完整版代码总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 …

最牛的网站建设c#网站开发模板

文章目录 数据库的隔离级别和锁机制一、数据库隔离级别1. 隔离级别说明2. 如何选择隔离级别3. 查询当前客户端隔离级别的命令.4. 修改隔离的命令 二、数据库中的锁1. 共享锁、排他锁2. 死锁3. 行级锁、表级锁 三、解决更新丢失问题1. 解决方案2. 乐观锁、悲观锁3. 乐观锁、悲观…

注册域名去哪个网站好关于政协 网站建设

PID算法的通俗讲解 PID算法的江湖地位? PID算法在控制领域是非常常见的算法,小到控制温度,大到控制飞机的飞行姿态,基本上算是在控制领域万能的算法。 关于PID算法的生活小故事: 假设一辆慢点量的车,跑着跑…

济南外贸网站建站江苏永坤建设有限公司网站

目录 一、C内存分布 二、C语言与C内存管理方式 1、C语言中动态内存管理方式:malloc/calloc/realloc/free 2、C中的内存管理方式:new/delete 三、operator new与operator delete函数 1、函数概念: 2、函数使用: 3、底层原理…

陕西正天建设有限公司网站做微商海报的网站

在宝塔面板环境下安装nps服务端 一、所需环境二、开始安装三、打开nps控制台四、更改默认账号密码和连接秘钥五、反向代理挂载SSL证书 一、所需环境 阿里云轻应用服务器(选择宝塔应用镜像)域名(最好也是阿里注册的域名)对应的ssl…

网站建设用户核心哈尔滨网络公司定制开发

前言 因为升级了安卓13,然后有个app需要恢复数据,打算和以前一样直接删除Android/data下对应目录再添加,结果不行,以下是结合网上以及自己手机情况来做的一种解决方案。 解决 准备: 待恢复app(包名com.…

做废塑料生意那个网站最专业wordpress主题 线条

1.场景分析 现有需求需要将elasticsearch的备份至hdfs存储,根据以上需求,使用logstash按照天级别进行数据的同步 2.重难点 数据采集存在时间漂移问题,数据保存时使用的是采集时间而不是数据生成时间采用webhdfs无法对文件大小进行设置解决…

重庆怎样建设网站搜索引擎优化的简写是

数据库对层次结构的处理模型有好多种,可以根据自己的需求来设计模型,当然最简单的也是最容易设计的模型就是所谓的邻接模型。在这方面,其他数据库比如Oracle提数据库对层次结构的处理模型有好多种,可以根据自己的需求来设计模型&a…

手机网站自适应分辨率竞价推广年终总结

算法-数据结构 金无足赤人无完人,在处理实际问题的时候我们可以使用到很多合适的数据结构,但目前还没有一个数据结构可以称的上完美。查询速度快的,插入的速度就会慢;插入速度和查询速度都快得,占用的空间就会多&…

关于进行网站建设费用的请示策划书模板范文

文章目录 开发平台基本信息问题描述解决方法 开发平台基本信息 芯片: MT8766 版本: Android 12 kernel: msm-4.19 问题描述 客户要求设备默认开启usb共享网络,并且网络共享给PC端时,PC端动态获取到的子网掩码、网关是固定不变的。 解决方法 解决方案…