社区
Web 开发
帖子详情
通过Applet + JDBC 访问 数据库,在浏览器端是否必须安装JDBC Driver?谢谢!
bonhomme
2003-10-16 12:27:09
通过Applet + JDBC 访问 数据库,在浏览器端是否必须安装JDBC Driver?谢谢!
...全文
68
2
打赏
收藏
通过Applet + JDBC 访问 数据库,在浏览器端是否必须安装JDBC Driver?谢谢!
通过Applet + JDBC 访问 数据库,在浏览器端是否必须安装JDBC Driver?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Lastdrop
2003-10-16
打赏
举报
回复
不会吧,在Applet中访问数据库,也太违反设计模式了吧?
hero1840
2003-10-16
打赏
举报
回复
必须安装JDBC Driver
java程序是怎么操作
数据库
的,可以以常用据库为例,求详细解答,最好能举例。
java 实现连接sql server 20002007-12-16 13:28:00.0 第一种:通过ODBC连接
数据库
JAVA语言的跨平台的工作能力(Write Once ,Run Anywhere)、优秀的图像处理能力(我相信现在没有那种语言可以超过JAVA在网络上的图形处理能力)、网络通信功能、通过
JDBC
数据库
访问
技术等等,让我们谁都不可否认JAVA语言是SUN公司对于计算机界的一个巨大的贡献。笔者可以描述这样一个场景:有一天你上网完全可以不用IE 或者NETSCAPE,上网就像是玩游戏,你可以获得游戏那么精美的图像和互动的感觉,如果你玩过UO,也许你就知道那种感觉了,但是JAVA做成的东西一定会超过UO的,因为不单单是游戏,也不是单单是
浏览器
,如果你愿意(要你有钱,有时间,有优秀的JAVA人才)你可以把所有的这一切用Java完全集成出来!!!我不是夸大JAVA的功能,大家可以
访问
一下http://www.simchina.net的那个社区程序,你就能找到一种感觉了:相信我没有说什么假话 。好了,不说废话了,现在我向你介绍JAVA的
数据库
访问
技术----
JDBC
数据库
访问
技术(你可千万不要搞成ODBC了哟!)。
JDBC
技术事实上是一种能通过JAVA语言
访问
任何结构化
数据库
的应用程序接口(API)(Sun这样说的,我也不知道是不是真的),而且现在的
JDBC
3.0据Sun说也能
访问
Execel等电子表格程序!
JDBC
对于
数据库
的
访问
有四种方式,我们这里只是介绍两种: 第一种是通过ODBC做为“桥”(Bridge)对
数据库
访问
,第二种是直接对
数据库
访问
。 我们先来看看第一种
JDBC
<-->ODBC
访问
的流程:
JDBC
Driver
Mannager->
JDBC
<->ODBC桥->ODBC->
数据库
客户机驱动库->
数据库
服务器->返回查询结果,在这种
访问
中值的我们注意的是虽然JAVA是"Write Once ,Run Anywhere",但是如果通过这种
访问
的话,需要客户
端
必须
设置ODBC和有相应的
数据库
客户机的驱动,当你看了下面的另外一个流程的时候或许你会想:明明下一种更方面,为什么还要有这个东西的产生!呵呵,因为,未必所有的
数据库
服务器提供商都提供下面的
JDBC
驱动程序(给
JDBC
访问
提供相应的接口),所以就有了
JDBC
<->ODBC Bridge。 接着再让我们来看看第二种
访问
流程:
JDBC
Driver
Mannager->局部
JDBC
驱动->客户
端
数据库
->
数据库
服务器->返回查询结果,这种
访问
事实上是转换
JDBC
调用为相应的
数据库
(Oracle, Sybase, Informix, DB2, 和其他的
数据库
数据库
管理系统)的客户
端
API调用(这么说,不知道大家能不能懂,说简单点就好像ASP不是通过DSN对
数据库
访问
而是通过OLEDB
访问
,说道这里我还是不知道大家能不能明白我的意思。哎呀,不要扔鸡蛋嘛!),这种方式的
访问
需要相应的
数据库
提供商提供相应的
JDBC
驱动程序,但是有一种好处,可以独立于odbc用于可以随处可Run的客户
端
的
浏览器
中的
Applet
程序。 我们下面将给大家一个通过
JDBC
-ODBC桥
数据库
访问
的实例,但是在看下面的事例前我想问大家一次:JDK1.3装了吗?
数据库
驱动装了吗(我使用的是SQLserver)?你该没有使用Linux吧?虽然java支持Linux,但是老兄我可没有使用Linux哟(这同JAVA的Write Once ,Run Anywhere没有关系),由于使用了运行于Win下面的ODBC,我建议你看看这篇东西http://www.aspcn.com/showarticle.asp?id=112,否则你要是有了问题,出不了结果那岂不是要怪我(不过欲加之罪,何患无吃... ...),冤枉呀! 哎呀,说了这么多的废话,还是让我们来看看到底
JDBC
的调用吧!既然我们是通过odbc
访问
数据库
,所以这个odbc是跑不了的,我们先来设置你的odbc:打开你的odbc数据源->选择系统dsn(Click加新的dsn-)->接下来输入选择
数据库
类型、输入dsn名:、选择服务器、连接
数据库
的方式、输入
数据库
的登陆用户和密码->测试连接,如果测试成功的话,那么你的dsn就建立好了,我的dsn名为Sqlserver.使用的是sqlserver7.0,以 “sa”登陆,密码为空。这些东西都是后面要用道的! 好了下面让我们来看程序代码: (该代码已经通过运行) //########################################################### //代码开始 //########################################################### import java.sql.*; //加载java数据连接包,java基本所有的
数据库
的调用的都在这个东西里面 public class InsertCoffees { public static void main(String args[]) { String url = "
jdbc
:odbc:sqlserver"; //取得连接的url名,注意sqlserver是dsn名 Connection con; //实例化一个Connection对象 Statement stmt; String query = "select * from col_link"; //选择所有的Col_link表中的数据输出 try { Class.forName("sun.
jdbc
.odbc.
Jdbc
Odbc
Driver
"); //加载
jdbc
-odbc桥驱动 } catch(java.lang.ClassNotFoundException e) { System.err.print("ClassNotFoundException: "); //加载
jdbc
-odbc桥错误 System.err.println(e.getMessage()); //其他错误 } try { con =
Driver
Manager.getConnection(url, "sa", ""); //
数据库
连接 stmt = con.createStatement(); //Create 一个声明 stmt.executeUpdate("CREATE TABLE col_link (sitename varchar (20) NULL ,siteurl varchar (50) NULL) "); //执行了一个sql语句生成了一个表col_link的表 stmt.executeUpdate("insert into col_link values('ASP中华网','http://www.aspcn.com')"); stmt.executeUpdate("insert into col_link values('永远到底有多远','http://xuankong.com')"); //执行一个insert into语句 stmt.executeUpdate("update col_link set siteurl='http://www.aspcn.com/xuankong/xuankongt.jpg' where siteurl='http://xuankong.com'"); //执行一个update语句,更新
数据库
ResultSet rs = stmt.executeQuery(query); //返回一个结果集 System.out.println("Col_link表中的数据如下(原始数据)"); //下面的语句使用了一个while循环打印出了col_link表中的所有的数据 System.out.println("站点名 "+" "+"站点地址"); System.out.println("---------------"+" "+"----------------"); while (rs.next()) { String s = rs.getString("sitename"); String f = rs.getString("siteurl"); //取得
数据库
中的数据 System.out.println(s + " " + f); /*String t = rs.getString(1); String l = rs.getString(2); System.out.println(t + " " + l);*/ /*
jdbc
提供了两种方法识别字段,一种是使用getXXX(注意这里的getXXX表示取不同类型字段的不同的方法)获得字段名, 第二种*是通过字段索引,在这里我把第二种方法注释了*/ /*你可以
访问
这个连接获得getxxx的用法:http://java.sun.com/docs/books/tutorial/
jdbc
/basics/_retrievingTable.html*/ } stmt.close(); con.close(); //上面的语句关闭声明和连接 } catch(SQLException ex) { System.err.println("SQLException: " + ex.getMessage()); //显示
数据库
连接错误或者查询错误 } } } //########################################################### //代码结束 //########################################################### 在上面这个程序中我想你展示了如何使用
JDBC
-ODBC连接
数据库
,使用SQL语句生成一个表,使用SELECT、INSERT 、UPDATE语句取的、插入和更新一个表中的数据,如何通过字段名和字段索引
访问
数据库
中的东东!我希望你能从上面的代码真正的学习到一些东西! 发挥你的想象力,设想一下JAVA到底,比如说可以通过
数据库
做一个不需要GUI(图形用户界面)的聊天室,呵呵,感觉起来就像在DOS环境下打字的聊天室!哈哈! 最后需要说的是笔者的调试上面程序的环境:WIN2000 , JDK1.3,MS SQLSERVER编辑软件:EDITPLUS 2.01a(这最后的东西可不是废话,虽然早就了一些专业的JAVA开发工具,但是笔者建议JAVA初学者使用文本软件开发JAVA程序) 第二种:直接用
jdbc
访问
数据库
(1) 该实例已经运行通过 jsp连接Sql Server7.0/2000
数据库
testsqlserver.jsp如下: <%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <%Class.forName("com.microsoft.
jdbc
.sqlserver.SQLServer
Driver
").newInstance(); String url="
jdbc
:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; //pubs为你的
数据库
的 String user="sa"; String password=""; Connection conn=
Driver
Manager.getConnection(url,user,password); Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); String sql="select * from test"; ResultSet rs=stmt.executeQuery(sql); while(rs.next()) {%> 您的第一个字段内容为:<%=rs.getString(1);%> 您的第二个字段内容为:<%=rs.getString(2);%> <%}%> <%out.print("
数据库
操作成功,恭喜你");%> <%rs.close(); stmt.close(); conn.close(); %> (2)java
访问
sqlserver服务器 第一步:
安装
jdbc
点击SQL Server for
JDBC
驱动程序
安装
程序setup.exe(可以到微软网站下载 http://msdn.microsoft.com/library/default.asp?rul=/downloads/list/sqlserver.asp下载) 第二步:设置系统变量classpath 假设SQL Server for
JDBC
驱动程序
安装
在d:\
jdbc
\,则classpath应该设置如下: classpath:=.;…;d:\
jdbc
\lib; d:\
jdbc
\lib\mssqlserver.jar; d:\
jdbc
\lib\msutil.jar; d:\
jdbc
\lib\msbase.jar; 注意:设置时要在最前面的点号和分号 第三步:编辑java程序并且运行 实例1如下: //import com.microsoft.*; //注意:在java与sql server 连接时不需要这个包,其他书上说这个包是必需的,这个问题有待进一步讨论 import java.sql.*; import java.net.URL; class insert { public static void main(String[] args) { String url="
jdbc
:microsoft:sqlserver://localhost:1433;DatabaseName=northwind"; String query="select * from categories"; String query1="insert categories values(10,'Hanbao','Sweet')"; String query2="insert categories values(11,'Naicha','Coffee taste')"; try { Class.forName("com.microsoft.
jdbc
.sqlserver.SQLServer
Driver
"); Connection con=
Driver
Manager.getConnection(url,"sa","739555"); Statement stmt=con.createStatement(); stmt.executeUpdate(query1); stmt.executeUpdate(query2); stmt.close(); con.close(); } catch(SQLException ex) { } catch(java.lang.Exception ex) { ex.printStackTrace(); } } } 实例2如下: //import com.microsoft.*; //注意:在java与sql server 连接时不需要这个包,其他书上说这个包是必需的,这个问题有待进一步讨论 import java.sql.*; import java.net.URL; class java2sqlserver { public static void main(String[] args) { String url="
jdbc
:microsoft:sqlserver://localhost:1433;User=sa;Password=739555;DatabaseName=northwind"; String query="Select * From Categories"; try { Class.forName("com.microsoft.
jdbc
.sqlserver.SQLServer
Driver
"); //
Driver
Manager.setLogStream(System.out); Connection con=
Driver
Manager.getConnection(url); checkForWarning(con.getWarnings()); Statement stmt=con.createStatement(); ResultSet rs=stmt.executeQuery(query); dispResultSet(rs); rs.close(); stmt.close(); con.close(); } catch(SQLException ex) { System.out.println(ex.toString()+"----SQLException caught----"); while(ex!=null) { System.out.print("SQLState:"+ex.getSQLState()); System.out.print("Message:"+ex.getMessage()); System.out.print("Vendor:"+ex.getErrorCode()); ex=ex.getNextException(); System.out.println(""); } } catch(java.lang.Exception ex) { ex.printStackTrace(); } } private static boolean checkForWarning(SQLWarning warn) { boolean rc=false; if(warn!=null) { System.out.println("----Warning----"); rc=true; while(warn!=null) { System.out.print("SQLState:"+warn.getSQLState()); System.out.print("Message:"+warn.getMessage()); System.out.print("Vendor:"+warn.getErrorCode()); System.out.println(""); warn=warn.getNextWarning(); } } return rc; } private static void dispResultSet(ResultSet rs) throws SQLException { int i; ResultSetMetaData rsmd=rs.getMetaData(); int numCols=rsmd.getColumnCount(); for(i=1;i<=numCols;i++) { if(i>1) System.out.print(", "); System.out.print(rsmd.getColumnLabel(i)); } System.out.println(""); boolean more=rs.next(); while(more) { for(i=1;i
sql server 2005
jdbc
Microsoft
JDBC
Driver
for SQL Server In its continued commitment to interoperability, Microsoft provides a Java Database Connectivity (
JDBC
)
driver
for use with SQL Server. The Microsoft
JDBC
Driver
for SQL Server is available to all SQL Server users at no additional charge, and provides access to SQL Server 2008 R2, SQL Server 2008, SQL Server 2005 and SQL Server 2000 from any Java application, application server, or Java-enabled
applet
. This
driver
is a Type 4
JDBC
driver
that provides database connectivity through the standard
JDBC
application program interfaces (APIs) available in Java Platform Standard Edition 5 (Java SE 5) and Java Platform Standard Edition 6 (Java SE 6). The Microsoft
JDBC
Driver
for SQL Server is
JDBC
4.0 compliant and runs on the Java Runtime Environment (JRE) 5.0 and 6.0. It has been tested against major application servers such as IBM WebSphere, and SAP NetWeaver.
项目实战:Java
Applet
与ActiveX控件应用
控件技术是B/S项目的开发手段,在项目实战中非常重要!作为一个程序员和架构师,掌握控件的开发和集成技术,是
必须
的技能;
浏览器
中显示的内容主要是标签,当需要复杂操作时,控件技术是超越标签、给B/S项目扩展功能的重要方法!学习本套视频,主要是掌握java
applet
的开发技术,同时需要掌握在大项目开发中, 如何有效的集成第三方控件;
快逸报表在J2EE部署中最简实例
快逸报表使用 在网上找个很多资料,也按着资料去尝试了多次,最终都以失败告终,也发现大部分文章都是拷贝粘贴来的,真不知道那些作者怎么想的,为什么不亲身测试后再贴到自己博客里呢,好了,废话少说,经过那么多次失败,最终亲测成功,特别整理发表,为那些刚接触快逸报表的同胞们省去不必要浪费的时间. 一. 下载并
安装
快逸报表软件工具 下载
安装
不需要过多赘述,跟
安装
日常软件没什么区别,值得提到的是
必须
先
安装
好环境, 先
安装
JDK,还有Tomcat 相关的配置步骤网上很多资料,相信不会难倒读者.笔者使用快逸报表版本为4.2.20,JDK1.5,Tomcat 6.0. 二. 报表设计 (1)关于授权 打开报表设计器,如果提示授权的话,你可以到
安装
目录下找到,笔者
安装
在了C盘, 所以目录如下C:\ProgramFiles\quieeReport\webapps\quiee\WEB-INF\classes 可以看到相关的授权. (2)配置数据源 打开设计器之后,
安装
后打开报表设计器,选择配置-数据源-新建-关系
数据库
,开始配置数据源,笔者用的是mysql,以mysql举例: 其中关键位置如下: 数据源名称要记住,因为在部署的时候,配置
数据库
时名字要和这保持一致.
数据库
类型选择相应的类型,数据源URL默认不是本机,需要修改,当然如果在其他机器上需要填写相应的IP地址,后面填写相应的
数据库
名字.下面填写数据用户名和密码.完成之后回到数据源窗口,选择刚创建的数据源,点击连接,数据源变色说明连接成功。.关闭窗口. (3)配置数据集创建报表 选择文件-新建报表,打开新建报表向导,填写数据源,下一步 注意数据源的名字也要保持一致,点击 下一步,按着提示进行下一步就可以, 最后点击生成网格报表,报表就生成了. 报表的表头可以修改为中文 完成之后,启动快逸报表的服务,将报表保存发布. 四个图标左边第三个是进行发布的,点击会提示进行保存报表,按提示进行保存.之后可以点击IE图标进行预览. 三. 在J2EE中部署快逸报表 在已有的 J2EE 项目中使用刚才创建的报表,需要如下步骤: (1) 导入 jar 包和相关文件 (a)将快逸报表
安装
目录\quieeReport\webapps\quiee\WEB-INF\lib中的 jar 包导入项目,并且导入所需要的mysql驱动包. (b)将\quieeReport\webapps\quiee\WEB-INF 目录下的 reportConfig.xml,runqianReport4.tld,runqianReportLog.properties 复制到项目的 WEB-INF 目录 (c)将\quieeReport\webapps\quiee 目录下的 j2re-1_4_1-windows-i586-i.exe,Myerror.jsp,myInputError.jsp, runqianReport4
Applet
.jar 和 images 目录(用于工具按 钮的图片可自选)复制到项目的 WebRoot 目录下。 (2) 修改web.xml文件 在 web.xml 文件中增加如下内容:
SetContextServlet
com.runqian.util.webutil.SetContextServlet
2
reportServlet
com.runqian.report4.view.ReportServlet
configFile
/WEB-INF/reportConfig.xml
1
reportServlet
/reportServlet
(3) 创建jsp文件 可以直接使用\quieeReport\webapps\quiee\reportJsp目录下的 showReport.jsp和 toolbar.jsp 文件。其中 showReport.jsp 用于显示报表,toolbar.jsp 用于显示工具按钮。 (4) 在项目中导入报表文件 在上面发布报表的路径下找到报表文件,将生成的.raq 报表文件导入项目。 (5) 添加授权文件 复制quieeReport\webapps\quiee\WEB-INF\classes目录下的授权文件,根据使用的操作系统进行选择, 到项目的 WebRoot 目录, 可能需要修改 reportConfig.xml 文件中的部分内容. 如果你用的不是window系统,更改成与您对应的授权的文件.特别注意的是”/”反斜杠符号 ,拷贝过来的文件里原本是没有的 (6) 修改reportConfig.xml文件 在其中添加如下配置内容,主要用于
数据库
的连接,需要主要的地方是name参数,需要跟报表文件的数据源名称一致. <!-- 配置快逸加载数据时候的datasource --> <
jdbc
-ds-configs> <
jdbc
-ds-config>
mysql
mysql
jdbc
:mysql://localhost:3306/test
<
driver
-class>com.mysql.
jdbc
.
Driver
driver
-class>
root
123
gbk
gbk
jdbc
-ds-config>
jdbc
-ds-configs> 注意的地方: 这个地方一定要和制作报表时候的数据源名字一致, (7)
访问
报表 发布上述 J2EE 项目,启动 tomcat,
访问
报表的 url 地址 为: 项目名称/reportJsp/showReport.jsp?raq=/报表名称.raq 就可以看到我之前做的报表,这个时候很多人会发现出现找不到报表配置文件的错误,而且这个问题也困扰了我很久,网上找了资料,按其操作并没有解决,经过又查找资料,终于找到问题根源,在于jar包的问题,其中一个很重要的jar包---webutil.jar,快逸报表自身带的jar是不能用的,本人所用版本这个jar包为3.6kb,替换成一个网上找打一个新的4.05kb大小的webutil.jar后,问题解决了.
大工15年春《Java-程序设计》在线作业三100分答案.docx
大工 15 春《Java 程序设计》在线作业 3 单选题 判断题 一、单选题(共 10 道试题,共 50 分。 ) 1. 下列协议中不属于应用层协议的是( ) 。 A. DNS B. ICMP C. Telnet D. SMTP ----------------- 选择:B 2. 下列不属于 TCP/IP 协议族体系结构层的是( ) 。 A. 应用层 B. 会话层 C. 网络层 D. 网络接口层 ----------------- 选择:B 3. 下列完整性,不属于关系型
数据库
三类完整性规则的是( ) 。 A. 实体完整性 B. 数据完整性 C. 参照完整性 D. 用户定义完整性 ----------------- 选择:B 4. 下列哪个类是
Applet
类的直接父类( ) 。 A. Component 类 B. Container 类 C. Frame 类 D. Panel 类 ----------------- 选择:D 5. A. 8 大工15年春《Java-程序设计》在线作业三100分答案全文共3页,当前为第1页。B. 14 大工15年春《Java-程序设计》在线作业三100分答案全文共3页,当前为第1页。 C. 16 D. 22 ----------------- 选择:B 6. 下列关于 Java 类的叙述正确的是( ) 。 A.
Applet
可以独立运行 B.
Applet
不能容纳其他组件 C. Panel 类是
Applet
类的子类 D. J
Applet
类是
Applet
类的子类 ----------------- 选择:D 7. 关于流的描述,下列错误的是( ) 。 A. 流是一组字节集合 B 类 IPv4 地址最多可用( )位来划分子网。 B. 流的基本操作有读操作和写操作 C. 流使数据传输操作独立于相关设备 D. 流无方向性 ----------------- 选择:D 8. 下列接口,不属于
JDBC
驱动程序
必须
实现的主要接口的是( ) 。 A.
Driver
B. Connection C. List D. ResultSet ----------------- 选择:C 9. 下列应用层协议,哪一项是 UDP 协议所支持的( ) 。 A. HTTP 协议 B. FTP 协议 C. SNMP 协议 D. SMTP 协议 ----------------- 选择:C 10. 下列关于 TCP Socket 通信原理描述,错误的是( ) 。 A. IP 协议是网络层的核心协议 B. TCP 和 UDP 协议都属于传输层协议 C. TCP 协议和 IP 协议都是面向连接的协议 D. UDP 协议和 IP 协议都是无连接的协议 ----------------- 选择:C 大工 15 春《Java 程序设计》在线作业 3 单选题 判断题 二、判断题(共 10 道试题,共 50 分。 ) 1. TCP 和 UDP 协议都是面向连接的协议。 A. 错误 B. 正确 ----------------- 选择:A 2.
JDBC
和 ODBC 数据源都需要手工配置。 A. 错误 B. 正确 ----------------- 选择:A 大工15年春《Java-程序设计》在线作业三100分答案全文共3页,当前为第2页。 大工15年春《Java-程序设计》在线作业三100分答案全文共3页,当前为第2页。 3. 文件是一种存储在外部存储介质上的信息的集合。 A. 错误 B. 正确 ----------------- 选择:B 4. 流的概念是文件系统组织和管理文件的基本单位。 A. 错误 B. 正确 ----------------- 选择:A 5.SQL Server
数据库
和 MySQL
数据库
都是 C/S 结构的关系型
数据库
。 A. 错误 B. 正确 ----------------- 选择:B 6. Java 提供 ServerSocket 类和 Socket 类实现 TCP Socket 通信。ServerSocket 类提供进行通 信的 Socket 对象。 A. 错误 B. 正确 ----------------- 选择:A 7. Java 编程语言支持多文档界面技术。 A. 错误 B. 正确 ----------------- 选择:B 8. RandomAccessFile 类对文件可以进行既读又写的操作。 A. 错误 B. 正确 ----------------- 选择:B 9. 文件的存取方式通常有顺序存取、随机存取和索引存取三种方式。 A. 错误 B. 正确 ----------------- 选择:B 10. Reader 类和 Writer 类是字符输入/输出流的非抽象类。 A
Web 开发
81,094
社区成员
341,711
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章