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

📄 keyunit.java

📁 云网论坛CWBBS 源码,内容丰富,学习,参考,教学的好资料,具体见内说明,
💻 JAVA
字号:
package cn.js.fan.db;

import java.io.Serializable;

public class KeyUnit implements Serializable,Cloneable {
    /**
     * 只能用于单一主键的情况,复合主键则必须用KeyUnit(type, orders),一定要有序号
     * @param type int
     */
    public KeyUnit(int type) {
        this.type = type;
    }

    public KeyUnit(Object value) {
        if (value instanceof Integer)
            this.type = PrimaryKey.TYPE_INT;
        else if (value instanceof String) {
            this.type = PrimaryKey.TYPE_STRING;
        }
        else if (value instanceof Long) {
            this.type = PrimaryKey.TYPE_LONG;
        }
        this.value = value;
    }

    /**
     * 用于复合主键,在QDBConfig的getQDBTable用到,以便在primaryKey.toObjectArray()中可以按照次序来排列key,在initDB中注意一定
     * 要设置orders(顺序),否则会在list的时候,比如:sql=select pk1, pk2 from table where cond=*的时候,就可能会因为次序都为0,而使得出错
     * 在QObjectDb中不会出现这样的问题,因为是从XML文件中读取时就赋予了顺序
     * @param value Object
     * @param orders int
     */
    public KeyUnit(int type, int orders) {
        this.type = type;
        this.orders = orders;
    }

    /**
     * 注意value只是影子克隆,克隆后value还是引用
     * @return Object
     */
    public Object clone() {
        KeyUnit o = null;
        try {
            o = (KeyUnit)super.clone();
        } catch (CloneNotSupportedException e) {
            e.printStackTrace();
        }
        return o;
    }

    public void setType(int type) {
        this.type = type;
    }

    public void setValue(Object value) {
        this.value = value;
    }

    public String getStrValue() {
        if (type==PrimaryKey.TYPE_STRING)
            return (String)value;
        else if (type==PrimaryKey.TYPE_INT)
            return "" + ((Integer)value).intValue();
        else if (type==PrimaryKey.TYPE_LONG)
            return "" + ((Long)value).longValue();
        else
            return null;
    }

    public int getType() {
        return type;
    }

    public Object getValue() {
        return value;
    }

    public int getOrders() {
        return orders;
    }

    public void setOrders(int orders) {
        this.orders = orders;
    }

    private int type;
    private Object value;
    private int orders;
}

⌨️ 快捷键说明

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