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

📄 dbmanager.java

📁 j2me 高级UI
💻 JAVA
字号:
/**
 * 作者:cat 戚永城
 * 时间:2008-3-1
 * QQ:415898635
 * E-Mail:	415898635@qq.com
 * 			qyc_12345@163.com
 * 
 * */
package org.qui.database;

import java.util.Vector;

import javax.microedition.rms.*;

/**
 * ctrl+7 快速注释
 */
public class DBManager {

	private RecordStore db_root = null;

	private String root_name = null;
	
	public DBManager() {

	}

	public DBManager(String root) {
		createDB(root);
	}

	public void createDB(String root) {
		this.root_name = root;
		try {
			db_root = RecordStore.openRecordStore(root, true);
		} catch (Exception e) {
		}
	}

	// 操作时使用名字是table 实际存储名字是root_table
	public boolean createTable(String table,Vector colums){
		try {
			if(haveData(root_name, table)){
				return false;
			}else{
				RecordStore rs = RecordStore.openRecordStore(root_name + "_" + table, true);
				db_root.addRecord(table.getBytes(), 0, table.length());
				int length = colums.size();
				String cur_col=null;
				for(int i=0;i<length;i++){
					cur_col=colums.elementAt(i).toString();
					rs.addRecord(cur_col.getBytes(), 0, cur_col.length());
					RecordStore col = RecordStore.openRecordStore(
							root_name + "_" + table+"_"+cur_col, true);
					col.closeRecordStore();
				}
				rs.closeRecordStore();
			}
		} catch (Exception e) {
		}
		return true;
		}

	public boolean createColum(String table, String col) {
		try {
			if (!haveData(root_name + "_" + table, col)) {
				RecordStore rs = RecordStore.openRecordStore(root_name + "_" + table, true);
				rs.closeRecordStore();
			} else {
				return false;
			}
	
		} catch (Exception e) {
		}
		return true;
	}

	public boolean addTableColums(String table,Vector colums){
		try {
			if(haveData(root_name, table)){
				RecordStore rs = RecordStore.openRecordStore(root_name + "_" + table, false);
				int length=rs.getSize();
				String cur_col=null;
				for(int i=0;i<length;i++){
					cur_col=colums.elementAt(i).toString();
					RecordStore colum = RecordStore.openRecordStore(
							root_name + "_" + table+"_"+rs.getRecord(i), true);
					colum.addRecord(cur_col.getBytes(), 0,cur_col.length());
					colum.closeRecordStore();
				}
				rs.closeRecordStore();
			}else{
				return false;
			}
		} catch (Exception e) {
			return false;
		}
		return true;
	}

	public boolean addData(String table, String colum, String data) {
		try {
			RecordStore rs = RecordStore.openRecordStore(root_name + "_" + table + "_" + colum, false);
			rs.closeRecordStore();
		} catch (Exception e) {
			return false;
		}
		return true;
	}

	public boolean deleteDB(){
		try {
			RecordStore rs = RecordStore.openRecordStore(root_name, false);
			// 清除下文链接,再清除本表单数据
			RecordEnumeration re = enumerate(rs);
			while (re.hasNextElement()) {
				int id = re.nextRecordId();
				deleteTable(root_name+"_"+new String(rs.getRecord(id)).toString());
				rs.deleteRecord(id);
				re.rebuild();
			}
			re.destroy();
			rs.closeRecordStore();
			RecordStore.deleteRecordStore(root_name);
		} catch (Exception e) {
			return false;
		}
		return true;
	}
	
	public boolean deleteTable(String table) {
		try {
			RecordStore rs = RecordStore.openRecordStore(table, false);
			// 清除下文链接,再清除本表单数据,再删除表单
			RecordEnumeration re = enumerate(rs);
			while (re.hasNextElement()) {
				int id = re.nextRecordId();
				deleteColum(root_name+"_"+new String(rs.getRecord(id)).toString());
				rs.deleteRecord(id);
				re.rebuild();
			}
			re.destroy();
			rs.closeRecordStore();
			RecordStore.deleteRecordStore(table);
		} catch (Exception e) {
			return false;
		}
		return true;
	}
	
	public boolean deleteColum(String table){
		try {
			RecordStore rs = RecordStore.openRecordStore(table, false);
			//清除表单数据 然后删除表单
			RecordEnumeration re = enumerate(rs);
			while (re.hasNextElement()) {
				int id = re.nextRecordId();
				rs.deleteRecord(id);
				re.rebuild();
			}
			re.destroy();
			rs.closeRecordStore();
			RecordStore.deleteRecordStore(table);
		} catch (Exception e) {
			return false;
		}
		return true;
	}
	
	public boolean deleteData(String table, String colum,int index) {
		if (index != -1) {
			try {
				RecordStore rs = RecordStore.openRecordStore(root_name+"_"+table+"_"+colum, false);
				rs.deleteRecord(index);
				rs.closeRecordStore();
			} catch (Exception e) {
			}
			return true;
		} else {
			return false;
		}
	}

	public boolean deleteData(String table, String colum,String data) {
		int index = getDataIndex(table, data);
		if (index != -1) {
			try {
				RecordStore rs = RecordStore.openRecordStore(root_name+"_"+table+"_"+colum, false);
				rs.deleteRecord(index);
				rs.closeRecordStore();
			} catch (Exception e) {
			}
			return true;
		} else {
			return false;
		}
	}

	public synchronized RecordEnumeration enumerate(RecordStore rs)
			throws RecordStoreNotOpenException {
		return rs.enumerateRecords(null, null, false);
	}
	
	public String[] getTables(String table, String colum,String keyColum,String keyData){
		RecordStore rs=null;
		String[] datas=null;
		String cur_col=null;
		int index=0;
		try {
			rs = RecordStore.openRecordStore(root_name+"_"+table, false);
			datas=new String[rs.getSize()];
			for(int i=0;i<datas.length;i++){
				if(haveData(table, keyColum)){
					if(haveData(keyColum, keyData)){
						index=getDataIndex(root_name+"_"+table+"_"+keyColum,keyData);
						if(index!=-1){
							for(int j=0;j<datas.length;j++){
								cur_col=new String(rs.getRecord(j));
								RecordStore db_col=RecordStore.openRecordStore(root_name+"_"+table+"_"+cur_col, false);
								datas[j]=new String(db_col.getRecord(index));
							}
							break;
						}
					}
				}
			}
		} catch (Exception e) {
		}
		return datas;
	}

	public String[] getColums(String table, String colum,String keyColum,String keyData){
		RecordStore rs=null;
		String[] datas=null;
		String cur_col=null;
		int index=0;
		try {
			rs = RecordStore.openRecordStore(root_name+"_"+table, false);
			datas=new String[rs.getSize()];
			for(int i=0;i<datas.length;i++){
				if(haveData(table, keyColum)){
					if(haveData(keyColum, keyData)){
						index=getDataIndex(root_name+"_"+table+"_"+keyColum,keyData);
						if(index!=-1){
							for(int j=0;j<datas.length;j++){
								cur_col=new String(rs.getRecord(j));
								RecordStore db_col=RecordStore.openRecordStore(root_name+"_"+table+"_"+cur_col, false);
								datas[j]=new String(db_col.getRecord(index));
							}
							break;
						}
					}
				}
			}
		} catch (Exception e) {
		}
		return datas;
	}
	
	public String getData(String table, String colum,String keyColum,String keyData){
		String data=null;
		
		return data;
	}
	
	private int getDataIndex(String table, String data) {
		try {
			RecordStore rs = RecordStore.openRecordStore(table, false);
			int length = rs.getSize();
			for (int i = 0; i < length; i++) {
				if (new String(rs.getRecord(i)).equals(data)) {
					return i;
				}
			}
			rs.closeRecordStore();
		} catch (Exception e) {
		}
		return -1;
	}

	public boolean haveData(String table, String data) {
		try {
			RecordStore rs = RecordStore.openRecordStore(table, false);
			int length = rs.getSize();
			for (int i = 0; i < length; i++) {
				if (new String(rs.getRecord(i)).equals(data)) {
					return true;
				}
			}
			rs.closeRecordStore();
		} catch (Exception e) {
		}
		return false;
	}

	public boolean setData(String table, String colum,int index, String data,boolean allowSameData) {
		try {
			RecordStore rs = RecordStore.openRecordStore(root_name+"_"+table+"_"+colum, false);
			if (allowSameData || (!allowSameData && !haveData(table, data))) {
				rs.setRecord(index, data.getBytes(), 0, data.length());
				rs.closeRecordStore();
			} else {
				return false;
			}
		} catch (Exception e) {
		}
		return true;
	}
}

⌨️ 快捷键说明

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