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