java可以访问操作lotus domino数据库吗?

  jdbc方式应该不能在jsp或javabean中使用吧,因为它会弹出密码输入框让你输入密码的;使用corba应该是可以的;第一种方式就不知道了,因为它要依靠客户端的。  
  第一种方式的例程:  
  import   lotus.domino.*;  
  import   java.net.*;  
  import   java.io.*;  
  import   java.util.*;  
   
  public   class   ConnectToDomino  
  {  
  Session   session   =   null;  
  String   strServer   =   null;  
  String   strUserName   =   null;  
  String   strPassWord   =   null;  
  //构造函数  
  public   ConnectToDomino(String   Server,String   User,String   Pass)   {  
  strServer   =   Server;  
  strUserName   =   User;  
  strPassWord   =   Pass;  
  setConnection();  
  }  
  //建立连接  
  public   boolean   setConnection()   {  
  if(strServer==null   ||   strUserName==null   ||   strPassWord==null)   return   false;  
              try   {  
              System.out.println("用户登录:"   +   strServer   +   "\t"   +   strUserName);  
  String   IOR=GetIOR();  
  if(IOR!="")    
  System.out.println("成功取得IOR,开始创建session.....");  
  else  
  System.out.println("获取IOR失败!");  
  //session   =   NotesFactory.createSession(strServer,strUserName,strPassWord);  
  //session   =   NotesFactory.createSession(strServer,"","");  
  //session   =   NotesFactory.createSessionWithIOR(IOR);   //匿名  
  session   =   NotesFactory.createSessionWithIOR(IOR,strUserName,strPassWord);   //用户身份  
   
  System.out.println("成功登陆,登录信息:\n服务器名称:"   +   session.getServerName()   +   "\n登录用户名:"   +    
   
  session.getUserName()   +   "\n");  
  return   true;  
  }  
  catch(Exception   e)  
  {  
  e.printStackTrace();  
  return   false;  
  }              
  }  
   
  //获取IOR  
  public   String   GetIOR()   {  
  InputStream   bin;  
  String   Result="";  
  int   character;  
  try{  
  URL   url   =   new   URL("http://"+strServer+"/diiop_ior.txt");  
  bin   =   url.openStream();  
  while((character=bin.read())>0)   {  
  Result   +=   (char)character;  
  }  
  }  
  catch(Exception   e){  
  e.printStackTrace();  
  }  
  return   Result;  
  }  
   
  //检索文档  
  public   void   Search(String   SearchDB,String   SearchFormular)   {  
  try   {  
   
  Database   db   =   session.getDatabase(session.getServerName(),SearchDB);  
  System.out.println   ("Searching:"   +   SearchFormular+"...");  
  DocumentCollection   dc   =   db.search(SearchFormular);  
  Document   docResult   =   dc.getFirstDocument();  
  if(docResult==null)   return;  
  int   i;  
  int   j=0;  
              while   (docResult   !=   null)   {  
              System.out.println(docResult.getItemValueString("FullName"));  
                  docResult   =   dc.getNextDocument();  
                  }                  
  }catch(Exception   e)  
  {  
  e.printStackTrace();  
  }  
  }  
  //创建文档  
  public     boolean   CreateNewDoc(String   DBName,String   formName,String[]   FieldList,String[]   ValueList,String   AgentName)   {  
  try{  
  Database   db   =   session.getDatabase(session.getServerName(),DBName);  
  Document   doc   =   db.createDocument();  
  Item   item   =   doc.appendItemValue("form",formName);  
  doc.computeWithForm(true,false);  
  int   i;  
  for(i=0;i   item   =   doc.replaceItemValue(FieldList[i],ValueList[i]);  
  }  
  doc.save();  
  if(AgentName!=null   ||   AgentName!="")   {  
  Agent   agent   =   db.getAgent(AgentName);  
  if(agent!=null)   {  
    agent.run(doc.getNoteID());  
  }  
  }  
  return   true;  
  }catch(Exception   e)  
  {  
  e.printStackTrace();  
  return   false;  
  }  
   
  }  
  //关闭  
  public   void   close()   {  
  try{  
  session.recycle();  
  session   =   null;  
  }  
  catch(Exception   e)  
  {  
  e.printStackTrace();  
  }  
  }  
  }  
以下是与domino建立链接的相关代码  
    import   lotus.domino.*;    
   
  try   {  
                         
                          System.out.println("开始Notes数据源进行连接....");  
                          Session   s   =   NotesFactory.createSession(notesHost,userName,userPassword);  
                          System.out.println("与Notes数据源成功连接,现正在查找Notes登录数据库oak.nsf");  
                          //定义全局性变量  
                          Database   db   =   null;  
                          Database   namesdb=null;  
                          View   view   =null;  
                          Document   doc   =   null;  
                          String   namesuser="";  
                          db   =   s.getDatabase(s.getServerName(),   SysInf.Notes_dir   +"/oak.nsf");  
                          ACL   acl   =   db.getACL();  
                          ACLEntry   entry   =   acl.getFirstEntry();  
                          namesdb=s.getDatabase(s.getServerName()   ,"names.nsf")   ;  
                          view   =   namesdb.getView("Groups");  
                          do  
                          {  
                                  //具体分析每一个对象  
                                  switch   (entry.getUserType())   {  
                                          case   ACLEntry.TYPE_MIXED_GROUP   :  
                                                  //混合组  
                                                  System.out.println("混合组     "+entry.getName())   ;break;  
                                          case   ACLEntry.TYPE_PERSON   :  
                                                  //个人  
                                                  namesuser=entry.getName().substring(3,entry.getName().indexOf("/")     );  
                                                  addnotesuser(namesuser);  
                                                  System.out.println("个人   :   "+   namesuser)   ;  
                                                  break;  
                                          case   ACLEntry.TYPE_PERSON_GROUP   :  
                                                  //个人群组  
                                                  System.out.println("个人群组:     "+entry.getName()   )   ;  
                                                  //names.nsf   中视图Groups   文档Members域有每一个用户  
                                                  doc   =   view.getFirstDocument();  
                                                  while   (doc   !=   null   &&   !doc.getFirstItem("ListName").getText().equals(entry.getName()   )       )  
                                                  {  
                                                          doc   =   view.getNextDocument(doc);  
                                                  }  
                                                  if   (doc!=null){  
                                                          Enumeration   values   =   doc.getFirstItem("Members").getValues().elements();  
                                                          while   (values.hasMoreElements())   {  
                                                                  //将CN=administrator/O=Autosoft只取它的名字administrator  
                                                                  namesuser=values.nextElement().toString()   ;  
                                                                  namesuser=namesuser.substring(3,namesuser.indexOf("/")   )   ;  
                                                                  addnotesuser(namesuser);  
                                                          }  
                                                  }  
                                                  break;  
                                          case   ACLEntry.TYPE_SERVER   :  
                                                  //服务器  
                                                  System.out.println("服务器     "+entry.getName())   ;break;  
                                          case   ACLEntry.TYPE_SERVER_GROUP   :  
                                                  //服务器组  
                                                  System.out.println("服务器组     "+entry.getName())   ;break;  
                                          case   ACLEntry.TYPE_UNSPECIFIED   :  
                                                  //没有指定  
                                                  if(entry.getName().indexOf("/")>1   )  
                                                  {  
                                                          namesuser=entry.getName().substring(3,entry.getName().indexOf("/")     );  
                                                          addnotesuser(namesuser);  
                                                          System.out.println("找到一个没有指定类型的用户     "+entry.getName().substring(3,entry.getName().indexOf("/")))   ;  
                                                          break;  
                                                  }  
                                                          else  
                                                          {  
                                                                  System.out.println("没有指定     "+entry.getName())   ;  
                                                                  break;  
                                                          }  
                                  }  
                          }   while   ((entry   =   acl.getNextEntry(entry))   !=   null);  
                          System.out.println("用户导入完成")   ;  
                  }  
   
                  catch   (Exception   ex)  
                  {  
                          ex.printStackTrace()   ;  
                          System.out.println("与Notes数据源连接失败"   )   ;  
                  }

你可能感兴趣的:(java,jsp,.net,jdbc,Lotus)