"Java后端开发常用工具类"
前言
个人开发过程中收集的常用工具类
Result(返回结果工具类)
Result
Result实体
/**
* 通用的结果类,用于封装操作的结果,包括状态码、消息和数据。
* @param <T> 结果包含的数据类型
*/
public class Result<T> {
private Integer code; // 操作结果的状态码
private String msg; // 操作结果的消息
private T data; // 操作结果的数据
/**
* 无参数构造函数,创建一个空的 Result 对象。
*/
public Result() {
super();
}
/**
* 带参数的构造函数,创建一个包含状态码、消息和数据的 Result 对象。
* @param code 操作结果的状态码
* @param msg 操作结果的消息
* @param data 操作结果的数据
*/
public Result(Integer code, String msg, T data) {
this.code = code;
this.msg = msg;
this.data = data;
}
/**
* 带参数的构造函数,创建一个包含状态码和消息的 Result 对象。
* @param code 操作结果的状态码
* @param msg 操作结果的消息
*/
public Result(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
/**
* 获取操作结果的状态码。
* @return 操作结果的状态码
*/
public Integer getCode() {
return code;
}
/**
* 设置操作结果的状态码。
* @param code 操作结果的状态码
*/
public void setCode(Integer code) {
this.code = code;
}
/**
* 获取操作结果的消息。
* @return 操作结果的消息
*/
public String getMsg() {
return msg;
}
/**
* 设置操作结果的消息。
* @param msg 操作结果的消息
*/
public void setMsg(String msg) {
this.msg = msg;
}
/**
* 获取操作结果的数据。
* @return 操作结果的数据
*/
public T getData() {
return data;
}
/**
* 设置操作结果的数据。
* @param data 操作结果的数据
*/
public void setData(T data) {
this.data = data;
}
/**
* 将 Result 对象的属性以字符串形式返回。
* @return 包含状态码、消息和数据的字符串表示形式
*/
@Override
public String toString() {
return "Result{" +
"code=" + code +
", msg='" + msg + '\'' +
", data=" + data +
'}';
}
}
Result工具类
/**
* 通用的结果工具类,用于创建成功或失败的结果对象,并提供多个重载的方法。
*/
public class ResultUtil {
/**
* 创建一个成功的结果对象,没有消息和数据。
* @return 成功的结果对象
*/
public static Result success() {
return success("成功");
}
/**
* 创建一个成功的结果对象,包含指定消息。
* @param msg 成功消息
* @return 成功的结果对象
*/
public static Result success(String msg) {
Result result = new Result(200, msg);
return result;
}
/**
* 创建一个成功的结果对象,包含指定数据。
* @param object 成功的数据
* @return 成功的结果对象
*/
public static Result success(Object object) {
Result result = new Result(200, "成功", object);
return result;
}
/**
* 创建一个成功的结果对象,包含指定消息和数据。
* @param msg 成功消息
* @param object 成功的数据
* @return 成功的结果对象
*/
public static Result success(String msg, Object object) {
Result result = new Result(200, msg, object);
return result;
}
/**
* 创建一个失败的结果对象,没有消息和数据。
* @return 失败的结果对象
*/
public static Result error() {
return error("失败");
}
/**
* 创建一个失败的结果对象,包含指定消息。
* @param msg 失败消息
* @return 失败的结果对象
*/
public static Result error(String msg) {
Result result = new Result(500, msg);
return result;
}
/**
* 创建一个失败的结果对象,包含指定数据。
* @param object 失败的数据
* @return 失败的结果对象
*/
public static Result error(Object object) {
Result result = new Result(500, "失败", object);
return result;
}
/**
* 创建一个失败的结果对象,包含指定消息和数据。
* @param msg 失败消息
* @param object 失败的数据
* @return 失败的结果对象
*/
public static Result error(String msg, Object object) {
Result result = new Result(500, msg, object);
return result;
}
}
String检测工具类
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 用于检查字符串是否满足特定格式的工具类。
*/
public class CheckString {
/**
* 检查字符串是否是有效的手机号码,要求必须是11位数字。
* @param input 要检查的字符串
* @return 如果是有效的手机号码则返回true,否则返回false
*/
public static boolean isPhoneNumber(String input) {
// 使用正则表达式检查是否是11位数字
Pattern pattern = Pattern.compile("^\\d{11}$");
Matcher matcher = pattern.matcher(input);
return matcher.matches();
}
/**
* 检查字符串是否是有效的邮箱地址,要求包含@符号和以.com结尾。
* @param input 要检查的字符串
* @return 如果是有效的邮箱地址则返回true,否则返回false
*/
public static boolean isEmail(String input) {
// 使用简单的正则表达式检查是否包含@符号和以.com结尾
Pattern pattern = Pattern.compile(".*@.*\\.com$");
Matcher matcher = pattern.matcher(input);
return matcher.matches();
}
}
JDBC工具类
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
/**
* 用于管理 JDBC 连接和数据库操作的工具类。
*/
public class JDBCUtils {
private static String url; // 数据库连接 URL
private static String user; // 数据库用户名
private static String password; // 数据库密码
private static String driver; // JDBC 驱动类名
static {
// 通过读取 JDBC.properties 文件来初始化连接参数和驱动类
Properties pro = new Properties();
// 获取当前类的类加载器
ClassLoader loader = JDBCUtils.class.getClassLoader();
// 通过类加载器获取src路径下资源的绝对路径
URL res = loader.getResource("JDBC.properties");
// 获取绝对路径
String path = res.getPath();
try {
// 读取配置文件
pro.load(new FileReader(path));
} catch (IOException e) {
e.printStackTrace();
}
// 获取配置文件中的连接参数和驱动类
url = pro.getProperty("url");
user = pro.getProperty("user");
password = pro.getProperty("password");
driver = pro.getProperty("driver");
try {
// 加载 JDBC 驱动类
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 获取数据库连接对象。
*
* @return 数据库连接对象
* @throws SQLException 如果连接失败
*/
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, user, password);
}
/**
* 关闭数据库连接和语句对象。
*
* @param stmt 已创建的数据库语句对象
* @param conn 已创建的数据库连接对象
*/
public static void close(Statement stmt, Connection conn) {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 关闭数据库结果集、语句对象和连接对象。
*
* @param rs 已创建的数据库结果集对象
* @param stmt 已创建的数据库语句对象
* @param conn 已创建的数据库连接对象
*/
public static void close(ResultSet rs, Statement stmt, Connection conn) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}