DAO

/*
 * 项目名       :北京五岳管理系统
 * 副系统名     :数据库访问
 * 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;
        }

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值