/*
* 项目名 :北京五岳管理系统
* 副系统名 :数据库访问
* class名 :AdmitDAO.java
* version :1.0
* 日期 :2005/07/07
* 著作权 :Copyright beijing WUYUE 2005, All rights reserved.
*/
package admit.db;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
*
* <p>
* Title: AdmitDAO.java
* </p>
* <p>
* Description: dao的抽象类,用于和数据库访问
* </p>
* <p>
* Copyright: Copyright (c) 2005
* </p>
* <p>
* Company: 五岳
* </p>
*
* @author gongjian
* @version 1.0
*/
public abstract class AdmitDAO {
/**
* log的实例,子类中使用
*/
protected Log log = LogFactory.getLog(this.getClass());
/**
* 条件设定方法,没有flag参数,作用是在写SQL句的时候,将页面的值传到WHERE子句中
* 例如WHERE A = 'a' and B = 'a'
*
* @param fieldName
* WHERE字句中数据库中的字段
* @param fieldValue
* 字段对应的值
* @param sb
* 要连接的字符串
*/
public void processCondition(String fieldName, String fieldValue,
StringBuffer sb) {
String temp = "";
if (fieldValue != null) {
temp = fieldValue.trim();
}
if (!"".equals(temp)) {
if (sb.length() > 0) {
sb.append(" and ");
}
sb.append(fieldName + "='" + temp + "'");
}
}
/**
* 条件设定方法,带flag参数,作用是在写SQL句的时候,将页面的值传到WHERE子句中
* 例如WHERE A = 'a' or B = 'a'
* flag参数,用于和另一条方法区别
*
* @param fieldNameone
* @param fieldNametwo
* @param fieldValue
* @param sb
* @param flag
*/
public void processCondition(String fieldNameone, String fieldNametwo,
String fieldValue, StringBuffer sb, int flag) {
String temp = "";
if (fieldValue != null) {
temp = fieldValue.trim();
}
if (!"".equals(temp)) {
if (sb.length() > 0) {
sb.append(" and ");
}
sb.append(fieldNameone + "='" + temp + "'" + " or " + fieldNametwo
+ "='" + temp + "'");
}
}
/**
* 条件设定方法,不带flag参数,作用是在写SQL句的时候,将页面的值传到WHERE子句中 例如WHERE A between 'a' and
* 'b'
*
* @param fieldName
* @param fieldValueOne
* @param fieldValueTwo
* @param sb
*/
public void processCondition(String fieldName, String fieldValueOne,
String fieldValueTwo, StringBuffer sb) {
if (fieldValueOne == null)
fieldValueOne = "";
if (fieldValueTwo == null)
fieldValueTwo = "";
if ("".equals(fieldValueOne) || "".equals(fieldValueTwo)) {
processCondition(fieldName, fieldValueOne, sb);
processCondition(fieldName, fieldValueTwo, sb);
} else {
if (sb.length() > 0) {
sb.append(" and ");
}
sb.append(fieldName + " between '" + fieldValueOne.trim()
+ "' and '" + fieldValueTwo.trim() + "'");
}
}
/**
* 条件设定方法,带flag参数,作用是在写SQL句的时候,将页面的值传到WHERE子句中 flag设定的是匹配的方式 0是部分匹配,例如WHERE
* A like %a% 1是前端匹配,例如WHERE A like a% 2是后端匹配,例如WHERE A like %a
*
* @param fieldName
* @param fieldValue
* @param sb
* @param flag
*/
public void processCondition(String fieldName, String fieldValue,
StringBuffer sb, int flag) {
String temp = "";
if (fieldValue != null) {
temp = fieldValue.trim();
}
if (!"".equals(temp)) {
if (sb.length() > 0) {
sb.append(" and ");
}
sb.append(fieldName + " like '");
switch (flag) {
case 0:
sb.append("%" + temp.trim() + "%'");
break;
case 1:
sb.append(temp.trim() + "%'");
break;
case 2:
sb.append("%" + temp.trim() + "'");
break;
}
}
}
/**
* trim字符串,如果是NULL则变成""
*
* @param str
* 要转换的字符串对象
* @return String 转换成的字符对象
*/
public String nullToZeroString(String str) {
if (str == null)
return "";
return str.trim();
}
/**
* 把时间转为String
*
* @param date
* @return
*/
public String dateFormat(Date date) {
if (date == null)
return "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(date);
}
/**
* 条件设定方法,不带flag参数,作用是在写SQL句的时候,将页面的值传到SET子句中
* 例如SET A ='a', B = 'b'
*
* @param fieldName
* @param fieldValue
* @param sb
*/
public void updateConditon(String fieldName, String fieldValue,
StringBuffer sb) {
String temp = "";
if (fieldValue != null) {
temp = fieldValue.trim();
}
if (!"".equals(temp)) {
if (sb.length() > 0) {
sb.append(",");
}
sb.append(fieldName + "='" + temp + "'");
}
}
/**
* 将表示数字的字符串转化为int型
*
* @param number
* @return
* @throws NumberFormatException
*/
public int StringToInt(String number) throws NumberFormatException {
String temp = "";
if (number != null) {
temp = number.trim();
}
if (!"".equals(temp)) {
int value = Integer.parseInt(number.trim());
return value;
} else {
return 0;
}
}
}