⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 databaseutils.java

📁 这是本人曾经在公司里用的,内部开发框架,基于struts+hibernate今天分享给大家
💻 JAVA
字号:
package cn.bway.common;

import java.util.Date;
import java.util.Calendar;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;

/**
 * @author Kson
 *
 */
public class DataBaseUtils extends StringUtils {
	/**
	 * 缺省的数据库分页页大小
	 */
	public static final int pageSize = 10;

	/**
	 * 根据总记录数获取总页数
	 * @param iCount int
	 * @return int
	 */
	public static int getTotalPage(int iCount) {
		return iCount / pageSize + (iCount % pageSize == 0 ? 0 : 1);
	}

	/**
	 * 根据总记录数和页大小获取总页数
	 * @param iCount int
	 * @param iPageSize int
	 * @return int
	 */
	public static int getTotalPage(int iCount, int iPageSize) {
		return iCount / iPageSize + (iCount % iPageSize == 0 ? 0 : 1);
	}

	/**
	 * 判断当前页的合法性
	 * @param iCount int
	 * @return int
	 */
	public static int getCurrPage(int iCount) {
		if (iCount < -1)
			return -1;
		else if (iCount > -1 && iCount < 1)
			return 1;
		else
			return iCount;
	}

	/**
	 * 取得当前时间的Timestamp对象
	 * @return
	 */
	public static Timestamp getTime() {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return Timestamp.valueOf(sdf.format(new Date()));
	}

	/**
	 * 把String类型时间转化为Timestamp类型
	 * @param time
	 * @return
	 */
	public static Timestamp getTime(String time) {
		return Timestamp.valueOf(time.trim() + ":00");
	}

	/**
	 * 把String类型时间转化为Timestamp类型
	 * @param date
	 * @return
	 */
	public static Timestamp setDateString(String date) {
		return Timestamp.valueOf(date.trim() + " 00:00:00");
	}

	/**
	 * 为进行SQL查询,把Date转换为'yyyy-MM-dd HH:mm:ss'格式
	 * @param date Date
	 * @return String
	 */
	public static String getDateFormat(Date date) {
		String strRet = "";
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String str = format.format(date);
		strRet = "to_date('" + str + "' , 'yyyy-mm-dd hh24:mi:ss')";
		return strRet;
	}

	/**
	 * 日期类型转换为字符串
	 * @param time Calendar
	 * @return String
	 */
	public static String getStdDateFormat(Calendar time) {
		String strRet = "";
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		strRet = format.format(time.getTime());
		return strRet;
	}

	/**
	 * 日期类型转换为字符串
	 * @param time Calendar
	 * @return String
	 */
	public static String getStdDateFormat(Date time) {
		String strRet = "";
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		strRet = format.format(time);
		return strRet;
	}

	/**
	 * Date类型转换为Calendar类型
	 * @param date Date
	 * @return Calendar
	 */
	public static Calendar getCalendar(Date date) {
		Calendar cal = Calendar.getInstance();
		cal.setTime(date);
		return cal;

	}

	/**
	 * Timestamp类型转换为Calendar类型
	 * @param time Timestamp
	 * @return Calendar
	 */
	public static Calendar getCalendar(Timestamp time) {
		Calendar cal = Calendar.getInstance();
		cal.setTime(time);
		return cal;
	}

	/**
	 * Timestamp类型转化为Date类型
	 * @param time
	 * @return
	 */
	public static Date getDate(Timestamp time) {
		return getCalendar(time).getTime();
	}

	/**
	 * String类型转化为Date类型
	 * @param time
	 * @return
	 */
	public static Date getDate(String time) {
		Date date = null;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		try {
			date = sdf.parse(time);
		} catch (ParseException e) {
			e.printStackTrace();
		}
		return date;
	}

	/**
	 * Timestamp类型转换为string类型
	 * @param time Timestamp
	 * @return String
	 */
	public static String getTimestamp(Timestamp time) {
		return getStdDateFormat(getCalendar(time));
	}

	/**
	 * Timestamp类型转化到String
	 * @param time
	 * @return
	 */
	public static String getStringTime(Timestamp time) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
		return sdf.format(time).toString();
	}

	public static String getStringTimestamp(Timestamp time) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		return sdf.format(time).toString();
	}

	/**
	 * 处理特殊字符:单引号,一个单引号变成两个
	 * @param sql String
	 * @return String
	 */
	public static String trimSqlQuotes(String sql) {
		final String separator = "'";
		if (sql == null) {
			return null;
		}

		if (sql.indexOf(separator) < 0) {
			return sql;
		}
		StringBuffer tmp = new StringBuffer(2 * sql.length());
		for (int i = 0; i < sql.length(); i++) {
			String at = sql.substring(i, i + 1);
			tmp.append(at);
			if (at.equals(separator)) {
				tmp.append(at);
			}
		}
		return tmp.toString();
	}

	/**
	 * 生成取中间部分数据的sql语句, Oracle专用
	 * @param sql String 带排序的原始sql语句
	 * @param lowLimit int 起始行
	 * @param highLimit int 截止行
	 * @return String
	 * @author Zhang zhongguang
	 */
	public static String getOraLimitString(String sql, int lowLimit,
			int highLimit) {
		StringBuffer pagingSelect = new StringBuffer(sql.length() + 64);
		pagingSelect
				.append("select * from ( select row_.*, rownum rownum_ from ( ");
		pagingSelect.append(sql);
		pagingSelect.append(" ) row_ where rownum <= ");
		pagingSelect.append(highLimit);
		pagingSelect.append(" ) where rownum_ >= ");
		pagingSelect.append(lowLimit);
		return pagingSelect.toString();
	}

	/**
	 * 生成取中间部分数据的sql语句, MySQL专用
	 * @param sql String 带排序的原始sql语句
	 * @param lowLimit int 起始行
	 * @param highLimit int 截止行
	 * @return String
	 * @author Zhang zhongguang
	 */
	public static String getMySQLLimitString(String sql, int lowLimit,
			int highLimit) {
		StringBuffer pagingSelect = new StringBuffer(sql.length() + 16);
		pagingSelect.append(sql);
		pagingSelect.append(" limit ");
		pagingSelect.append(lowLimit);
		pagingSelect.append(", ");
		pagingSelect.append(highLimit);
		return pagingSelect.toString();
	}

	/**
	 * 返回time1所在time2与time3之间的所在坐标
	 * @param time1 要计算的时间
	 * @param time3 开始时间
	 * @param time4 结束时间
	 * @return
	 */
	public static float display(Timestamp time1, Date time2, Date time3) {
		long day1, day2, day3;
		day1 = time1.getTime() / (1000 * 60);
		day2 = time2.getTime() / (1000 * 60);
		day3 = time3.getTime() / (1000 * 60);

		if (day1 - day2 < 0) {
			return -1;
		}
		if (day1 - day3 > 1) {
			return 1;
		}
		return (float) (day1 - day2) / (day3 - day2);
	}

	/**
	 * 根据项目的月份返回本月字符串
	 */
	public static String getGuildFormat(String year, int i) {
		Date date1 = new Date(year + "/" + i + "/1");
		Date date2 = new Date(year + "/" + (i + 1) + "/1");
		date2.setDate(date2.getDate() - 1);
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		String str = format.format(date1) + "," + format.format(date2);
		return str;
	}

	public static int calculateX(Timestamp time, String y1, String y2, int width) {

		Date d1 = new Date(y1 + "/1/1");
		Date d2 = new Date(y2 + "/12/31");
		long l = d1.getTime();
		int i = (int) ((time.getTime() - l) * width / (d2.getTime() - l) - 6);
		return i;
	}

	/**
	 * date类型转化到Timestamp
	 * @param date
	 * @return
	 */
	public static Timestamp getDatetime(Date date) {
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return Timestamp.valueOf(format.format(date));
	}

	public static String getCnDate(String time) {
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		return format.format(getDate(time));
	}

	public static String getLength(String name, int i) {
		int len = name.length();
		if (len > i) {
			return name.substring(0, i) + "..";
		} else
			return name;
	}

	/**
	 * oracle分页查询构造
	 * @param sql String sql脚本
	 * @param startNo int 从
	 * @param endNo int 到
	 * @return String
	 */
	public static String getLimitString(String sql, int startNo, int endNo) {
		StringBuffer pagingSelect = new StringBuffer(100);
		pagingSelect
				.append("select * from ( select row_.*, rownum rownum_ from ( ");
		pagingSelect.append(sql);
		pagingSelect.append(" ) row_ where rownum <= " + endNo
				+ ") where rownum_ >= " + startNo);
		return pagingSelect.toString();
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -