如何使用JDBC操纵Domino Server 数据库

作者&投稿:独孤弯 (若有异议请与网页底部的电邮联系)
请教高手java可以访问操作lotus domino数据库吗~

可以的,有几种方式:
1、直接使用Domino本身的jar(notes.jar或NCSO.jar)文件接口,这种连接方式需要Domino服务器启动DIIOP服务;
2、使用Domino的LDDJ(Lotus Domino Drivers for JDBC)接口,接口可以到IBM的网站上去下载,这种连接方式只能在window环境下使用,需要安装notes客户端,使用ID来验证的,需要手动输入密码;
http://www-12.lotus.com/ldd/doc/drivers/jdbc/1.5/lddj_help.nsf
3、使用Corba来访问Domino,这个比较烦,我至今没有调通
http://www.oaunion.com/oaunion/oaunion.nsf/doc/05728898F1320F4F48256DF7004CFBE5?opendocument&skeyword=Corba

完全可以呀,先定义ODBC,再用LS类似如下书写(要先引用Uselsx "*LSXODBC"):
Dim l_ses_Cur As New NotesSession
Dim l_db_Cur As NotesDatabase
Dim l_dc_Tmp As NotesDocument
Dim l_itm_Temp As NotesItem

Dim l_con_Temp As ODBCConnection
Dim l_qry_Temp As ODBCQuery
Dim l_rst_Temp As ODBCResultSet


Set l_db_Cur=l_ses_Cur.CurrentDatabase
'连接数据库
Set l_con_Temp = New ODBCConnection
Set l_qry_Temp = New ODBCQuery
Set l_rst_Temp = New ODBCResultSet
Set l_qry_Temp.Connection = l_con_Temp
Set l_rst_Temp.Query = l_qry_Temp
l_con_Temp.ConnectTo("bjht_arch")
l_qry_Temp.SQL = "SELECT * FROM main"
If Not l_rst_Temp.Execute Then
Messagebox l_rst_Temp.GetExtendedErrorMessage,, l_rst_Temp.GetErrorMessage
Exit Sub
End If
l_rst_temp.Execute

尽管Domino不是关系型数据库,而是一个文档型数据库。但仍可使用JDBC来存取Domino中的数据。
要想像存取关系型数据库那样存取Domino数据库,只需要将视图当成数据库表就可以了。也就是说,SQL查询语句select * from goal where condi='test'所代表的就是选取condi列值为test的goal视图中的文档。
JDBC存取Domino数据的步骤如下:
1、为用户建立界面,用于输入数据。
2、建立连接对象,并初始化该对象。
3、打开数据库。
4、接受用户查询,并建立查询对象 。
5、用用户查询请求查询数据库。
6、返回结果。
7、关闭连接。

主要代码如下:

String url = "jdbc:domino:/"+DB+"/"+Server;
try {
Class.forName("lotus.jdbc.domino.DominoDriver");
}catch (ClassNotFoundException ce) {
System.out.println("ClassNotFoundException: " + ce.getMessage());
}
try {
con = DriverManager.getConnection(url,"","");
} catch (SQLException se) {
System.out.println("SQLException: " + se.getMessage());
}
String url = "jdbc:domino:/"+DB+"/"+Server;
con = DriverManager.getConnection(url,"","");.
private void doQuery() throws Exception {
//do SQL query into Notes db...
sql = txtInput.getText();
txtOutput.append("\n***" + sql + "***\n Executing...\n");
stm = con.createStatement();
rs = stmnt.executeQuery(sql);
rsmd = rs.getMetaData();
}

stm是一个SQL语句对象,rs是方法execteQuery(sql)返回的结果,rsmd<是由方法getMetaData返回的MetaData。

注:这仅仅是代码的主体部分,同时如果要使用JDBC存取Domino数据,还需要使用其JDBC驱动程序,也就是JdbcDomino.jar类文件。

JAVA SSH和JFinal框架 有什么区别?(优缺点)
答:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE...

Java中框架是干什么的?
答:比如如果你说servlet开发,你需要在servlet获取表单的参数,每次都要获取很麻烦,而struts底层就使用反射机制和拦截器机制帮助我们获取表单的值,我们就不用每次都手写那些代码了,简化了开发,当然你必须遵守一些规定来配置。还有比如hibernate,它提供了一些通用性很强的对数据库的增删改差,如果你使用jdbc每次...

java的三大框架是什么,功能各是什么
答:常说的三大框架指:SSH,即:Spring、Struts、Hibernate。Spring:功能强大的组件粘合济,能够将你的所有的java功能模块用配置文件的方式组合起来成为一个完成的应用。Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率...

JAVA这个是什么意思呢?
答:Hibernate 是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的...

数据库怎么获得?什么是数据库
答:什么是 JDBC? JDBC 是对 ODBC API 进行的一种面向对象的封装和重新设计,它易于学习和使用,并且它真正能够使您编写不依赖厂商的代码,用以查询和操纵数据库。尽管它与所有 Java API 一样,都是面向对象的,但它并不是很高级别的对象集. 除Microsoft 之外,多数厂商都采用了 JDBC,并为其数据库提供了 JDBC 驱动...

2020计算机毕业实习总结报告三篇
答:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了十分轻量级的对象封装,使得Java程序员能够随心所欲的使用对象编程思维来操纵数据库。Hibernate能够应用在任何使用JDBC的场合,既能够在Java的客户端程序使用,也能够在Servlet/JSP的Web应用中使用,革命好处的是,Hibernate能够在应用EJB的J2EE架构中代替CMP,完成数据...

Java中shh框架的原理是怎样的啊?
答:java web中shh框架的原理如下:1.典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。表现层是传统的JSP技术,自1999年问世以来,经过...

struts2,spring,,hibernate,这些都有什么用的?
答:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装, 使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。7、Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB...

三大框架是什么
答:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完...

mvc 作用 和 ssh作用(详细说说status、spring、hibernate的作用...
答:2) Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。它在SSH中负责持久层,完成数据库的增删改...