首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 企业软件 > 行业软件 >

java 访问 domino数据库 如何设置查询条件

2013-07-24 
java 访问 domino数据库 怎么设置查询条件头一次接触domino,现在想用java从domino数据库中查询文档数据,代

java 访问 domino数据库 怎么设置查询条件
头一次接触domino,现在想用java从domino数据库中查询文档数据,代码如下:


try {  
    //如果已将ior文件拷到本地,则直接读ior文件
        try {
        BufferedReader iorin= new BufferedReader(new FileReader("diiop_ior.txt"));
        ior = iorin.readLine();
        iorin.close();
        } catch (IOException e) {
        ior = null;
        }
        //如果读不到diiop_ior.txt文件,则需要通过网络从服务器下载这个文件
        //这需要domino服务器开放http服务
        if(ior == null) {
        ior = NotesFactory.getIOR(dominoServer);//下载IOR
        }
        session = NotesFactory.createSessionWithIOR(ior,username,password);
    
        logger.info("连接邮件服务器成功" );  
        //得到数据库   
        database = session.getDatabase(session.getServerName(), mailFile, false);  
        Document doc = database.createDocument();  
        View vw = null; 

        View vw1  = database.getView("Incidents\\All");       
        
        if(null == vw1){
        logger.info("没有符合条件的视图");
        return null;
        }
        
        int aa = vw1.FTSearch("测试邮件");
        
        vw1.getAllDocumentsByKey("");
        
        Document doc1 = vw1.getFirstDocument();
        int begin = 0;
        while(doc1!=null){


        Vector columnNames = vw1.getColumns(); 
        if(begin==0){
        System.out.println("columnNames -- "+columnNames+" -- end");
        }
        
        //------------------------------------------
        Vector srVector = doc1.getColumnValues();
        //详细列
        Vector itemVector = doc1.getItems();
        
        String subject = (String)doc1.getItemValue("Subject_NAV").get(0);
        String content = (String)doc1.getItemValue("Findings_NAV").get(0);
        String author = (String)doc1.getItemValue("Author_NAV").get(0);
        String recipients = (String)doc1.getItemValue("Recipients").get(0);
        DateTime created = (DateTime)doc1.getItemValue("Created_NAV").get(0);
    
        System.out.println("发送人="+author+" 标题="+subject+" 内容="+content+" 接收人="+recipients+" 生成日期="+created);
        System.out.println("============="+itemVector);
        System.out.println("begin -- "+srVector+" -- end");
        //------------------------------------------
        
        begin++;
        doc1 = vw1.getNextDocument(doc1);
        }
        
        str = "success";
    } catch (Exception ex) {  
    if(ex instanceof lotus.domino.NotesException){
    logger.info("通过CORBA访问数据库发生错误,错误代码为"+((lotus.domino.NotesException)ex).id);
    }
    
    logger.info("连接邮件服务器失败");
    str = "fail";
    ex.printStackTrace();


    }finally{  
        if(database!=null){  
            try {  
                database.recycle();  
            } catch (NotesException e) {  
                e.printStackTrace();  
            }  
        }  
        if(session!=null){  
            try {  
                session.recycle();  
            } catch (NotesException e) {  
                e.printStackTrace();  
            }  
        }  
    }  


得到的输出结果是:
columnNames -- [, , Date, Category, Action Taken, Database, Author, Violation] -- end
发送人=admin/lon 标题=测试邮件 内容=The attachment eicarcom2.zip 接收人=CN=test/O=lon 生成日期=12/27/2012 17:36:33 ZE8
=============[Type_NAV, Form, Author_NAV, Subject_NAV, Created_NAV, Modified_NAV, Accessed_NAV, DatabaseTitle_NAV, DatabasePath_NAV, Server_NAV, ScannedDate_NAV, Recipients, ScanType_NAV, DefinitionsDate_NAV, ActionSetting_NAV, Findings_NAV, DocumentActionNum_NAV, DocumentAction_NAV, ViolationCategory_NAV, ViolationType_NAV, ViolationName_NAV, ViolationAction_NAV, StillInfected_NAV, Quarantined_NAV, Link_NAV, $UpdatedBy]
begin -- [IBM365/longway, 115.0, 12/27/2012 17:36:33 ZE8, Threat/Security Risk, Quarantined, IBM365 Mailbox, admin/longway, EICAR Test String] -- end

可以看到输出的生成日期是“12/27/2012 17:36:33 ZE8”
问题是,如果我想查询出的文档的“生成日期”在一定日期范围的话,应该在哪里添加这个条件?可以实现么,帮忙指点一下。 java domino

分享到:
[解决办法]
这个可以实现,用db.search(formula),formula里面加上日期比较。

热点排行