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

📄 dbtool.java~304~

📁 一個手機程序(電子詞典),一個不可多得的源碼程序,是學習J2ME的好東東.
💻 JAVA~304~
📖 第 1 页 / 共 2 页
字号:
            WordGroup wg=new WordGroup(ew.word);
            wg.words.remove(ew.word);
            wg.store();
            //删除EnWord本身
            deleteOne(EN_WORD_DB,rsId);
            return rsId;
        }
        catch(Exception e){
            e.printStackTrace();
            return -1;
        }
    }

    /**
     * 删除单个CnWord方法,该方法的执行过程如下:<br>
     * 1.删除EnWord中关联<br>
     * 2.删除CnGroup中的关联<br>
     * 3.删除EnWord本身
     * @param rsId int 失败:-1,成功:正整数
     */
    public int delCnWord(int rsId){
        try{
            //构建CnWord对象
            CnWord cw=new CnWord(rsId);
            //删除该CnWord与EnWord的关联
            if(cw.enRSId.size()>0){
                Vector ens=cw.enRSId;
                EnWord ew=null;
                int index=0;
                for(int n=ens.size()-1;n>=0;n--){
                    ew=new EnWord(Integer.parseInt((String)ens.elementAt(n)));
                    index=ew.cnRSId.indexOf(rsId+"");
                    ew.cnAdj.removeElementAt(index);
                    ew.cnRSId.removeElementAt(index);
                    ew.store();
                }
            }
            //删除该CnWord与CnGroup的关联
            WordGroup wg=new WordGroup(cw.word);
            wg.words.remove(cw.word);
            wg.store();
            //删除EnWord本身
            deleteOne(CN_WORD_DB,rsId);
            return rsId;
        }
        catch(Exception e){
            e.printStackTrace();
            return -1;
        }
    }

    /**
     * 返回中文词语或英文单词RMS数据库中下一条记录的id编号
     * @param en boolean 英文true,中文false
     * @return int
     */
    public int getNextId(boolean en){
        RecordStore rs=null;
        int nextId=-1;
        try{
            if (en) {
                rs = openRS(EN_WORD_GROUP_DB);
                nextId = rs.getNextRecordID();
                rs.closeRecordStore();
            } else {
                rs = openRS(CN_WORD_GROUP_DB);
                nextId = rs.getNextRecordID();
                rs.closeRecordStore();
            }
        }
        catch(Exception e){e.printStackTrace();}
        return nextId;
    }

    /**
     * 重新初始化CnGroupDB库,主要是创建占位Record,该方法采用先删除原有库,然后在重新
     * 创建库并插入记录.
     */
    public void initCnGroupDB(byte[]bt){
        try {
            RecordStore rs = openRS(CN_WORD_GROUP_DB);
            rs.closeRecordStore();
            rs.deleteRecordStore(CN_WORD_GROUP_DB);
            rs=openRS(CN_WORD_GROUP_DB);
            for(int i=0;i<1000;i++){
               int res=rs.addRecord(bt,0,bt.length);
               System.out.println(i+"="+res);
            }
            rs.closeRecordStore();
        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        }
    }

    /**
     * 重新初始化EnGroup库,主要是创建占位Record,该方法采用先删除原有库,然后在重新
     * 创建库并插入记录.
     */
    public void initEnGroupDB(byte[]bt){
        try {
            RecordStore rs = openRS(EN_WORD_GROUP_DB);
            rs.closeRecordStore();
            rs.deleteRecordStore(EN_WORD_GROUP_DB);
            rs=openRS(EN_WORD_GROUP_DB);
            byte[]t=new byte[0];
            for(int i=0;i<676;i++){
                int res=rs.addRecord(bt,0,bt.length);
                System.out.println(i+"="+res);
            }
            rs.closeRecordStore();
        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        }
    }

    /**
     * 数据库占位初始化,由于需要校长时间,所以采用了启用新线程的方法,后台执行数据库的初始化,
     * 前台显示请等待...页面
     */
    public void run() {
        RecordStore rs=null;
        try{
            ByteArrayOutputStream bos=new ByteArrayOutputStream();
            DataOutputStream dos=new DataOutputStream(bos);
            dos.writeInt(0);
            byte[]bt=bos.toByteArray();
            dos.close();
            bos.close();
            if (cnFirstId < 0) {
                initCnGroupDB(bt);
                cnFirstId=getNextId(false)-1000;
            }
            if (enFirstId < 0) {
                initEnGroupDB(bt);
                enFirstId=getNextId(true)-676;
            }
        }
        catch(Exception e){e.printStackTrace();}
        Navigator.show();
    }

    /**
     * 返回生词库中的Id集合
     * @return Vector
     */
    public Vector getSenIds(){
        Vector result = new Vector();
        try{
            RecordStore rs = this.openRS(DbTool.STRANGE_WORD);
            RecordEnumeration re = rs.enumerateRecords(null, null, false);
            while (re.hasNextElement()) {
                byte[] bs = re.nextRecord();
                ByteArrayInputStream bis = new ByteArrayInputStream(bs);
                DataInputStream dis = new DataInputStream(bis);
                result.addElement("" + dis.readInt());
                dis.close();
                bis.close();
            }
            rs.closeRecordStore();
        }
        catch(Exception e){
            e.printStackTrace();
        }
        return result;
    }

    /**
     * 强行删除该程序下的所有RMS
     */
    public void deleteAll(){
        try {
            RecordStore rs = openRS(CN_WORD_GROUP_DB);
            rs.closeRecordStore();
            try{
                rs.deleteRecordStore(CN_WORD_GROUP_DB);
            }catch(Exception e){System.out.println("STRANGE_WORD not equals!");}
            try{
                rs.deleteRecordStore(EN_WORD_GROUP_DB);
            }catch(Exception e){System.out.println("STRANGE_WORD not equals!");}
            try{
                rs.deleteRecordStore(CN_WORD_DB);
            }catch(Exception e){System.out.println("STRANGE_WORD not equals!");}
            try{
                rs.deleteRecordStore(EN_WORD_DB);
            }catch(Exception e){System.out.println("STRANGE_WORD not equals!");}
            try{
                rs.deleteRecordStore(STRANGE_WORD);
            }catch(Exception e){System.out.println("STRANGE_WORD not equals!");}
            try{
                rs.deleteRecordStore(SYSTEM_DB);
            }catch(Exception e){System.out.println("SYSTEM_DB not equals!");}
           System.out.println("delete is ok..");
        } catch (RecordStoreException ex) {
            ex.printStackTrace();
        }
    }

    /**
     * 删除记录仓库中的单条记录
     * @param rsName String
     * @param rsid int
     */
    public void deleteOne(String rsName,int rsid){
        try{
            RecordStore rs=openRS(rsName);
            rs.deleteRecord(rsid);
            rs.closeRecordStore();
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }

/* 以下是测试方法 ----------

    public void selectAll(){
        try{
            RecordStore rs=openRS(EN_WORD_DB);
            queryRS(rs,1);
            rs.closeRecordStore();
            System.out.println("E is end ....");

            RecordStore rs1=openRS(CN_WORD_DB);
            queryRS(rs1,2);
            rs1.closeRecordStore();
            System.out.println("C is end ....");

          RecordStore rs2=openRS(EN_WORD_GROUP_DB);
            queryRS(rs2,-1);
            rs2.closeRecordStore();
            System.out.println("EG is end ....");

            RecordStore rs3=openRS(CN_WORD_GROUP_DB);
            queryRS(rs3,0);
            rs3.closeRecordStore();
            System.out.println("CG is end ....");
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }
    private void queryRS(RecordStore rs,int type) throws
            InvalidRecordIDException, RecordStoreNotOpenException,
            RecordStoreException {
        RecordEnumeration re=rs.enumerateRecords(null,null,false);
        int id=-1;
        for(int i=0;i<re.numRecords();i++){
            id=re.nextRecordId();
            System.out.println("_"+id);
            if(type==0){
                WordGroup cwg=new WordGroup(CN_WORD_GROUP_DB,id);
                if(cwg.words.size()>0){
                    System.out.println(cwg.rsId + "CG_.." + cwg.words);
                }
            }
            else if(type==-1){
                WordGroup ewg=new WordGroup(EN_WORD_GROUP_DB,id);
                if(ewg.words.size()>0){
                    System.out.println(ewg.rsId + "EG_.." + ewg.words);
                }
            }
            else if(type==1){//en
                EnWord ew=new EnWord(id);
                System.out.println(ew.rsId+"E_.w."+ew.word);
                System.out.println(ew.rsId+"E_.adj."+ew.cnAdj);
                System.out.println(ew.rsId+"E_.cid."+ew.cnRSId);
            }
            else{
                CnWord cw=new CnWord(id);
                System.out.println(cw.rsId+"C_.w."+cw.word);
                System.out.println(cw.rsId+"C_.eid."+cw.enRSId);
            }
        }
    }
*/
}

⌨️ 快捷键说明

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