一些工具类

ROS水下仿真神器uuv_simulator:从零搭建水下机器人测试环境(附Gazebo配置全流程) 本文详细介绍了如何使用ROS和uuv_simulator从零搭建水下机器人仿真测试环境,包括Gazebo配置全流程。通过系统环境准备、水下世界构建、机器人模型定制开发等步骤,帮助开发者在虚拟海洋环境中高效验证算法,大幅降低研发成本。特别适合水下机器人研发人员参考。 阅读详情

baseAction:

package com.util;

import java.io.PrintWriter;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;
import org.apache.struts2.util.ServletContextAware;

import com.opensymphony.xwork2.ActionSupport;
/**
 *
 * 
 *@author wushengxin
 * 
 * Action的工具类
 */
public abstract class BaseAction extends ActionSupport implements
        ServletRequestAware, ServletResponseAware, ServletContextAware {
    protected HttpServletRequest request;
    protected HttpServletResponse response;

    protected HttpSession session;

    protected PrintWriter out;

    protected ServletContext servletContext;

    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
        if (request != null) {
            this.session = request.getSession();
        }
    }

    public void setServletResponse(HttpServletResponse response) {
        this.response = response;
        if (this.response != null) {
            try {
                this.out = this.response.getWriter();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    public void setServletContext(ServletContext servletContext) {
        this.servletContext = servletContext;
    }

    public abstract String execute() throws Exception;
}

日期工具:

package com.util;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

import freemarker.template.SimpleDate;
/**
 *日期工具类
 * 
 *获取系统时间
 * 格式(yyyyMMdd_HHmmss)
 * @author wushengxin
 */
public class DateUtil {

    public static String getTimeStamp(){
        Date date = new Date();
        DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHmmss");

        return dateFormat.format(date);
    }

    public static String getSysDateTime() {
        Date date = new Date();
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        dateFormat.setTimeZone(TimeZone.getTimeZone("GMT+8"));
        return dateFormat.format(date);
    }

    public static long diffTimeForDay(String compareTime, String sysTime) {
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        long days = 0;
        try {
            Date d1 = dateFormat.parse(compareTime);

            Date d2 = dateFormat.parse(sysTime);

            long diff = d1.getTime() - d2.getTime();

            days = diff / (1000 * 60 * 60 * 24);

        } catch (Exception e) {
            e.printStackTrace();
        }
        return days;
    }

    public static void main(String[] args) {
        System.out.println(DateUtil.getTimeStamp());
    }
}

``


全局变量工具类:

package com.util;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class GlobalUtil {

public static final double PI = 3.1415;

public static String getSysDate() {
    Date date = new Date();

    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

    return dateFormat.format(date);
}

}




数据库jdbc工具类:
package com.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;


import oracle.jdbc.OracleDriver;
/**
 *连接数据库的工具类
 * 
 *
 * 
 * @author wushengxin
 */
public class JdbcUtil {

    private static String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    private static String username = "wsx";
    private static String password = "wsx";

    static {
        try {
            Class.forName("oracle.jdbc.OracleDriver");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     *
     * 
     *获取数据库连接
     * 
     * 
     */
    public static Connection getConn() {
        Connection conn = null;
        try {

            conn = DriverManager.getConnection(url, username, password);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn;
    }
    /**
     *
     * 更新操作
     *@return 布尔类型
     * @param sql
     * 
     */
    public static boolean executeUpdate(String sql) throws Exception {
        Connection conn = null;
        Statement stmt = null;
        boolean flag = false;
        try {
            conn = JdbcUtil.getConn();
            stmt = conn.createStatement();
            stmt.executeUpdate(sql);
            flag = true;
        } catch (Exception e) {
            e.printStackTrace();
            throw e;
        } finally {
            JdbcUtil.closeResource(null, stmt, conn);
        }
        return flag;
    }
    /**
     *
     * 返回单条记录时的操作
     *@return Map<String, Object>
     * @param sql
     * 
     */
    public static Map<String, Object> executeQuerySingle(String sql) {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        Map<String, Object> rowMap = null;
        ResultSetMetaData metaData = null;
        try {
            conn = JdbcUtil.getConn();
            stmt = conn.createStatement();
            rs = stmt.executeQuery(sql);

            metaData = rs.getMetaData();
            int columnCount = metaData.getColumnCount();
            if (rs.next()) {
                rowMap = new HashMap<String, Object>();
                for (int i = 1; i <= columnCount; i++) {
                    String columnName = metaData.getColumnName(i).toLowerCase();
                    Object columnValue = rs.getObject(columnName);
                    rowMap.put(columnName, columnValue);
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            JdbcUtil.closeResource(rs, stmt, conn);
        }
        return rowMap;
    }
    /**
     *
     * 关闭数据库连接
     *
     * @param rs stmt conn
     * 
     */
    public static void closeResource(ResultSet rs, Statement stmt,
            Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            rs = null;
        }
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            stmt = null;
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            conn = null;
        }

    }

}


json工具类:

package com.util;

import org.codehaus.jackson.map.ObjectMapper;
/**
*
* 把数据格式转成json的工具类
*
* @author wushengxin
*
*/
public class JsonUtil {
private static ObjectMapper objectMapper = new ObjectMapper();

public static String objectToJson(Object obj) {
    String jsonStr = "";
    if (obj != null) {
        try {
            jsonStr = objectMapper.writeValueAsString(obj);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    return jsonStr;
}

}


获取系统参数的工具类:

package com.util;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
/**
*
* 获取系统参数的工具类
*
* @author wushengxin
*
*/
public class ParamUtil {

public static String getParamValue(int userid, String param_key) {
    String param_value = "";
    Connection conn = null;
    Statement stmt = null;
    ResultSet rs = null;
    StringBuffer querySQL = new StringBuffer();
    querySQL.setLength(0);
    querySQL.append("Select param_value");
    querySQL.append(" From T_Sys_User_Param \n");
    querySQL.append(" where userid = '" + userid + "' ");
    querySQL.append(" and param_key = '" + param_key + "'");
    try {
        conn = JdbcUtil.getConn();
        stmt = conn.createStatement();
        rs = stmt.executeQuery(querySQL.toString());
        if (rs.next()) {
            param_value = rs.getString("param_value");
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        JdbcUtil.closeResource(rs, stmt, conn);
    }
    return param_value;
}

}

其它工具类:

package com.util;

import java.math.BigDecimal;
/**
*
* 把int类型转为BigDecimal的工具类
*
* @author wushengxin
*
*/
public class SysUtil {
public static int BigDecimalToInt(Object obj) {
BigDecimal bd = (BigDecimal)obj;
int result = bd.intValue();
return result;
}

}

“`

(仅供参考)

如何在iPhone上本地运行SmolVLM?5亿参数模型实战指南(附Swift代码) 本文详细介绍了如何在iPhone上本地部署和运行轻量高效的SmolVLM多模态模型。通过实战指南,分享了使用Swift和MLX框架进行环境配置、模型加载、内存优化以及实现实时图像分析与文本生成的完整流程,帮助开发者在移动端高效运行AI视觉语言模型。 阅读详情

相关推荐

UE5.1实战:从零到打包,手把手教你用UMG和蓝图搭建智慧城市数字孪生界面

本文详细介绍了如何使用UE5.1的UMG和蓝图系统从零开始构建智慧城市数字孪生界面。通过环境准备、UMG界面设计、蓝图功能实现、数据绑定到最终打包发布的全流程指导,帮助开发者掌握数字孪生技术的核心应用,提升智慧城市可视化开发效率。

weixin_30251829的博客 619

工具类的详解

1、工具类 1.1 定义 工具类是为了提供一些通用的、某一非业务领域内的公共方法,不需要配套的成员变量,仅仅是作为工具方法被使用。所以将它做成静态方法最合适,不需要实例化,能够获取到方法的定义并调用就行。 1.2 不实例化的原因 如果要实例化一个工具类,就需要一定的内存空间,工具类提供的是静态方法,通过类就能调用,所以不必浪费内存去实例化工具类对象。 1.3 做法 Java项目中使用的工具类非常多,比如JDK自己的工具类java.lang.Math、java.util.Collections等都是我们经常用

qq_35091353的博客 1万+

从Transformer到蛋白质结构预测:手把手解读ESM系列模型的核心原理与实战价值

本文深入解析了ESM系列模型如何将Transformer架构创新应用于蛋白质结构预测,揭示了其从氨基酸序列到三维结构的高效预测机制。通过掩码语言模型预训练和注意力机制,ESM模型不仅捕捉蛋白质序列的远程相互作用,还在蛋白质工程改造、药物发现等领域展现出巨大实战价值,显著提升了结构预测速度和精度。

weixin_28744423的博客 319

JDBC相关工具类的封装

一、JDBC连接工具类(MySQL为例) 1、在项目根目录创建一个properties的配置文件db.properties,里面定义了四行数据,分别对应着JDBC连接所需要的几个参数(注:Properties底层为一个Hashtable,配置文件中“=”之前的代表Map中的键,之后的代表相应键所对应的值) driverClassName=com.mysql.jdbc.Driver url=jdbc...

老头儿ii的博客 1万+

DP链路训练从HPD触发到通道对齐:原理与调试实战

高速数字接口的稳定工作依赖物理层信号的精确协商,链路训练正是DisplayPort接口中确保源端与接收端在速率、摆幅和时序上达成一致的关键机制。HPD作为链路状态变化的触发信号,与通道对齐一同构成了训练流程的首尾环节。理解从时钟恢复到均衡再到多通道对齐的完整过程,有助于快速定位显示异常问题。在工程实践中,借助DPCD寄存器交互和AUX通道日志,可以系统性地排查训练失败原因。围绕链路训练全流程进行剖析,重点探讨HPD触发机制、训练图案选择、寄存器配置以及链路降级策略,为显示方案开发与调试提供工程参考。

weixin_30110543的博客 235

永磁同步电机矢量控制(十一)——基于损耗模型的PMSM效率优化策略

本文深入探讨了永磁同步电机(PMSM)基于损耗模型的效率优化策略,详细分析了铜损和铁损的构成与建模方法,并提出了最小损耗控制策略的实现方案。通过与传统MTPA控制的对比,展示了在不同工况下的效率提升效果,同时讨论了工程实现中的关键问题与解决方案,为PMSM的高效运行提供了理论支持和实践指导。

7z8x2c4v6b9的博客 232

Jwt 工具类

这里主要是记录Jwt 常用的一些工具类,方便以后查阅!!!

王林的博客 2347

破盾实录|Vueling航空阿卡迈防护逆向:从503挑战到Cookie生成的全流程拆解

摘要:文章分享了作者在爬取西班牙伏林航空(Vueling)机票数据时,遭遇阿卡迈(Akamai)防护系统的实战经历。起初简单的请求被拦截返回503错误,分析发现阿卡迈通过混淆JS代码实施"挑战-验证"机制,需模拟真实浏览器环境才能获取有效Cookie。作者详细拆解了逆向过程:从抓包分析JS挑战流程,到破解代码混淆和控制流平坦化,最终用Python+Pyppeteer成功模拟浏览器特征,突破防护获取数据。整个过程涉及JS反混淆、环境检测绕过和Cookie生成验证等关键技术点,为类似防护系统

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1643

java项目常用的工具类

java项目开发工具类拒绝过度封装,本文简单介绍了项目中常用的关于对象、集合、数组、Map等操作的工具类,开箱即用,值得拥有。

qq_43016560的博客 1231

YOLO系列算法改进 | C2PSA改进篇 | 融合FSD频域结构解耦模块 | 双域解耦感知,兼顾全局亮度与局部纹理,适应红外小目标与边缘部署场景 | ICME 2026

YOLO系列算法改进 | C2PSA改进篇 | 融合FSD频域结构解耦模块 | 双域解耦感知,兼顾全局亮度与局部纹理,适应红外小目标与边缘部署场景 | ICME 2026 (以YOLO26最新目标检测模型为基础,利用C2PSA_FSD创新模块进行改进)

2502_91881744的博客 316

【项目实战】SOVD协议(面向服务的车辆诊断协议)

此外,AUTOSAR组织将SOVD部分内容的软件实现定义在了R22-11及以上版本的AUTOSAR Adaptive规范中,还支持动态发现车内诊断功能、获取高性能计算机(HPC)的Log信息等新的诊断需求,更符合当前软件定义汽车概念下的行业趋势。而SOVDGateway作为边缘节点,也肩负着对SOVD Client进行认证以及权限控制的责任,从而保证车辆的信息安全。相较于传统的UDS(Unified Diagnostic Services)协议,SOVD不仅保留了传统的读写数据、例程控制、故障读取等功能,

奶爸的编程之路,也就一周冷个三天 1905

Java 工具类

摘要:本文主要介绍了Java工具类的概念、常见工具类库以及使用方法。Java工具类是一种常用的面向对象编程设计模式,通过封装静态方法提供可重用的功能模块,能够提高代码的可维护性和效率。常见的Java工具类库包括Hutool、Apache Commons等,同时也介绍了如何创建和使用自定义工具类的方法。通过使用Java工具类,可以方便地进行字符串处理、数据库连接、文件操作等常见任务,从而提高开发效率。

Java_soul_GJH的博客 882

USB驱动(URB)

本文介绍了Linux内核中USB驱动开发的核心概念URB(USB Request Block)。URB是主机与USB设备间传输数据的抽象结构体,包含目标设备、端点信息、数据缓冲区等关键字段。文章详细解析了URB的生命周期(分配、填充、提交、回调、释放)、四种传输类型(控制、批量、中断、等时)及其应用场景,并提供了鼠标设备的中断传输示例代码。最后强调了URB使用注意事项,包括DMA缓冲区分配、错误处理和资源释放等。URB作为USB驱动与内核通信的桥梁,是构建稳定USB驱动程序的基础。

m0_49476241的博客 915

Java工具类

分享一些日常使用的工具类。

m0_47616061的博客 2037

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

工具类:JDBC工具类

配置文件 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/project jdbc.user=root jdbc.password=123456 jdbc.datasource.size=10 常量接口 package com.lirong.sparkproject.constant; pub...

曹利荣的博客 2986

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

android sharedpreferences工具类

今天,简单讲讲如何写一个sharedpreferences的工具类。   很简单,把一些重复的操作封装在工具类里,其他地方调用就可以。在网上搜索了比较多的资料,找到一个比较好的工具类。 参考文章:https://blog.youkuaiyun.com/androidsj/article/details/79796194 import android.content.Context; import a...

谢岩的博客 5547

Collections 工具类和 Arrays 工具类常见方法总结

Collections 工具类和 Arrays 工具类常见方法 Collections Collections 工具类常用方法: 排序 查找,替换操作 同步控制(不推荐,需要线程安全的集合类型时请考虑使用 JUC 包下的并发集合) 排序操作 void reverse(List list)//反转 void shuffle(List list)//随机排序 void sort(List list...

weixin_39940206的博客 2221

JUC工具类

CountDownLatch 是 JUC 中用于线程协调的同步工具类,而 JUC 是 Java 并发编程的核心工具包,覆盖了锁、原子操作、并发集合、线程池、异步编程等几乎所有多线程场景。掌握这些工具类能显著提升多线程程序的性能和可靠性。

2303_76837797的博客 1190

基于fastJson的工具类

基于fastjson的json工具类 package com.abc.utils; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializeConfig; import com.alibaba.fastjson.serializer.SerializerFeature; import co...

K的博客 3276

Jdbc工具类例子

Jdbc工具类的简单例子 封装方法 创建连接,共用调用 静态代码块,只需调用一次,账号密码等配置文件获取,不需更改代码 关闭资源方法 配置文件: driver=com.mysql.cj.jdbc.Driver url = jdbc:mysql://localhost:3306/study?useSSL=false&serverTimezone=UTC&characterEncoding=utf-8 user=root password=password ...

林高禄 9256

gson工具类

gson工具类: import com.google.gson.*; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.List; @Slf4j public class GsonUtils { //log日志 //private static final Logger LOG...

Asan 1768

Validation工具类

Validation工具类 工具类代码 package cn.com.taiji.approve.manager.vehicleimport; import java.util.Iterator; import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import javax.vali

weixin_44023972的博客 970

socket工具类

前面写了经典蓝牙的工具类,用到了socket,今天写个socket工具类总结一下。 服务端 public class ServerSocketUtil { private static volatile ServerSocketUtil instance; private ServerSocketUtil() {} public static ServerSocketUt...

白云天的博客 3591

ObjectMapper工具类

相信做过Java 开发对这个类应该不陌生,没错,这个类是jackson提供的,主要是用来把对象转换成为一个json字符串返回到前端,现在大部分数据交换都是以json来传输的,所以这个很重要。 在给定类的基础上,进一步包装,生成JsonUtils工具类,而只需导入工具类便可直接使用其中定义的方法进行Json的转换。 JSonUtils工具类: import java.util.List; impo...

qq_34748010的博客 1544

【Java】static —— 静态方法和工具类

需求:在实际开发中,经常会遇到一些数组使用的工具类。请按照如下要求编写一个数组的工具类:ArrayUtil提供一个工具类方法printArr,用于返回整数数组的内容。(只考虑整数数组,且只考虑一维数组)提供这样一个工具方法getAerage,用于返回平均分。(只考虑浮点型数组,且只考虑一维数组)定义一个测试类TestDemo,调用该工具类的工具方法,并返回结果。//私有化构造方法//目的:为了不让外界创建它的对象//需要定义为静态的,方便调用i++) {

qq_39921135的博客 1262

工具类的编写

在我们使用JAVA编程的过程中,我们经常会导入一些包利用里面一些类来进行便捷的操作,例如使用Scanner类,自带的lang包里的String类,Math类。当我们想要从键盘接受一些数据的时候,我们首先导入Scanner包,然后必须创建一个对象来,比如接受一个整型输入,就需要定义一个整型变量来进行接受: Scanner sc = new Scanner(Syste...

详情请看注释 1343

【Java基础】——集合工具类Collections和数组工具类Arrays

android培训------我的java笔记,期待与您交流! 一、集合工具类Collections 1、什么是Collections? Collections是对集合框架的一个工具类。它里边的方法都是静态的,不需要创建对象。并未封装特有数据。在Collections工具类中大部分方法是用于对List集合进行操作的,如比较,二分查找,随机排序等。 2、常见操作 ①查找 T ma

lucas的编程之旅 4056
上一篇: Struts配置参考
下一篇: 过滤器参考
Simpson_wu
博客等级 码龄12年 3粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值