📄 databaseutils.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 + -