工具类(当遇到经常用到的方法时,不如将其封装成一个工具类)

1、日期类数据与String类数据之间的相互转换

函数解析

SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

public StringBuffer format(Date date,StringBuffer toAppendTo, FieldPosition pos)将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer。
参数:
date - 要被格式化为日期-时间字符串的日期-时间值。
toAppendTo - 新的日期-时间文本被添加的位置。日期的格式,例如 yyyy-MM-dd
pos - 格式化的位置。输入时:如果需要,是一个对齐字段。输出时:为对齐字段的偏移量。
返回:格式化的日期-时间字符串。

public class DateUtil {
/*
 * 工具类Date类的对象与String类的对象之间的相互转换
 * @param date
 * @param format
 * @return String 
 * @author song
 */
	public static String formatDate(Date date,String format){
		String result = "";
		//format一般为  yyyy-MM-dd
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		if(date != null){
			result = sdf.format(date);
		}
		return result;
	}
	
	/*
 * 工具类String类的对象与Date类的对象之间的相互转换
 * @param date
 * @param format
 * @return Date
 * @author song
 */
	public static Date formatString(String str, String format) throws Exception{
	//format一般为为yyyy-MM-dd
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		return sdf.parse(str);
	}
}

2、将ResultSet数据转换成JSON数据

在进行转换前要大致了解知道ResultSet对象的数据形式是什么样的。

ResultSet函数介绍

rs.getMetaData()用于获取关于 ResultSet 对象中列的类型和属性信息的对象。
int getColumnCount() throws SQLException返回此 ResultSet 对象中的列数。
String getColumnName(int column) throws SQLException获取指定列的名称,int column是用来获取第几列的名称的。
Object getObject(int columnIndex) throws SQLException以 Java 编程语言中 Object 的形式获取此 ResultSet 对象的当前行中指定列的值。

JSON的对象介绍

JSONArray是一个数组,与Java中的数组无异。
JSONObject是一个Map,与Java中的Map无异。

代码展示
package util;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.Date;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

	/*
 * 工具类ResultSet对象与JSON对象之间的相互转换
 * @param rs
 * @return JSONArray
 * @author song
 */
public class JsonUtil {
	public static JSONArray formatRsToJsonArray(ResultSet resultSet) throws Exception{
		ResultSetMetaData md = resultSet.getMetaData();
		int num = md.getColumnCount();
		JSONArray jsonArray = new JSONArray();
		while(resultSet.next()){
			JSONObject mapOfColValues = new JSONObject();
			//for(int i=0;i<num;i++) {	//这是原来的错误代码,遇到此问题
			for(int i=1;i<=num;i++){	//这是修改过后的代码,解决此问题  rs.getObject(i)获取列值时,下标是从“1”开始
				Object o = resultSet.getObject(i);
				if(o instanceof Date){
					mapOfColValues.put(md.getColumnName(i), DateUtil.formatDate((Date)o, "yyyy-MM-dd"));
				} else {
					mapOfColValues.put(md.getColumnName(i), resultSet.getObject(i));
				}
			}
			jsonArray.add(mapOfColValues);
		}
		return jsonArray;
	} 
}
需要导入的包

在这里插入图片描述

3、将转换成JSONObject的数据response回去

response.getWriter();

public class ResponseUtil {
	public static void write(HttpServletResponse response, Object o) throws Exception{
	//响应头
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		out.println(o.toString());
		out.flush();
		out.close();	
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值