一个Applet(JApplet)访问数据库的例子

【java】JApplet类的使用 代码清单: package p1; import java.awt.Graphics; import javax.swing.*; //*********Found********** public class Java_3 extends JApplet { double sum; //存和的变量 //*********Found********** publ... 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 用JApplet做的Applet和一般的Applet有些不同。主要是因为Swing库类的单线程原则,所以当JApplet的界面生成后,由其它线程(一般是消息分发线程)试图改变界面(如setText())可能会导致问题发生。这是可以借助SwingUtilities.invokeLater()或SwingUtilities.invokeAndWait()来解决。下面是一个用JApplet访问数据库的例子。 DBApplet.java ====================================================================== import java.sql.*; import javax.swing.*; public class DBApplet extends javax.swing.JApplet { final static private String[] jdbcDriver = { "com.informix.jdbc.IfxDriver", "sun.jdbc.odbc.JdbcOdbcDriver", "com.borland.datastore.jdbc.DataStoreDriver", "com.sybase.jdbc.SybDriver", "oracle.jdbc.driver.OracleDriver", "COM.ibm.db2.jdbc.net.DB2Driver", "interbase.interclient.Driver", "weblogic.jdbc.mssqlserver4.Driver" }; private boolean connected = false; private Connection connection = null; private ResultSet rs = null; private String query = null; private String rsLine = null; private String driver = null; private String url = null; private String user = null; private String password = null; public DBApplet() { initComponents (); postInit(); } private void postInit() { for (int i = 0; i < jdbcDriver.length; i ) { cbDriver.addItem(jdbcDriver[i]); } } private void initComponents() { jScrollPane1 = new javax.swing.JScrollPane(); taResponse = new javax.swing.JTextArea(); jPanel2 = new javax.swing.JPanel(); jPanel1 = new javax.swing.JPanel(); jLabel6 = new javax.swing.JLabel(); tfSql = new javax.swing.JTextField(); btnExecute = new javax.swing.JButton(); jPanel3 = new javax.swing.JPanel(); jLabel3 = new javax.swing.JLabel(); jPanel4 = new javax.swing.JPanel(); cbDriver = new javax.swing.JComboBox(); jLabel7 = new javax.swing.JLabel(); tfUrl = new javax.swing.JTextField(); jLabel9 = new javax.swing.JLabel(); tfUser = new javax.swing.JTextField(); jLabel10 = new javax.swing.JLabel(); tfPassword = new javax.swing.JTextField(); btnConnect = new javax.swing.JButton(); btnDisconnect = new javax.swing.JButton(); setFont(new java.awt.Font ("Verdana", 0, 12)); jScrollPane1.setViewportView(taResponse); getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER); getContentPane().add(jPanel2, java.awt.BorderLayout.EAST); jLabel6.setText("SQL:"); jPanel1.add(jLabel6); tfSql.setPreferredSize(new java.awt.Dimension(300, 21)); jPanel1.add(tfSql); btnExecute.setText("Execute Query"); btnExecute.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnExecuteActionPerformed(evt); } }); jPanel1.add(btnExecute); getContentPane().add(jPanel1, java.awt.BorderLayout.SOUTH); jPanel3.setPreferredSize(new java.awt.Dimension(550, 100)); jPanel3.setMinimumSize(new java.awt.Dimension(550, 100)); jPanel3.setMaximumSize(new java.awt.Dimension(550, 100)); jLabel3.setText("JDBC Driver:"); jPanel3.add(jLabel3); jPanel3.add(jPanel4); cbDriver.setPreferredSize(new java.awt.Dimension(450, 26)); cbDriver.setMinimumSize(new java.awt.Dimension(100, 26)); jPanel3.add(cbDriver); jLabel7.setText("Database URL:"); jPanel3.add(jLabel7); tfUrl.setPreferredSize(new java.awt.Dimension(450, 21)); jPanel3.add(tfUrl); jLabel9.setText("User:"); jPanel3.add(jLabel9); tfUser.setPreferredSize(new java.awt.Dimension(100, 21)); jPanel3.add(tfUser); jLabel10.setText("Password:"); jPanel3.add(jLabel10); tfPassword.setPreferredSize(new java.awt.Dimension(100, 21)); jPanel3.add(tfPassword); btnConnect.setPreferredSize(new java.awt.Dimension(89, 27)); btnConnect.setMaximumSize(new java.awt.Dimension(89, 27)); btnConnect.setText("Connect"); btnConnect.setMinimumSize(new java.awt.Dimension(89, 27)); btnConnect.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnConnectActionPerformed(evt); } }); jPanel3.add(btnConnect); btnDisconnect.setText("Disconnect"); btnDisconnect.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnDisconnectActionPerformed(evt); } }); jPanel3.add(btnDisconnect); getContentPane().add(jPanel3, java.awt.BorderLayout.NORTH); } private void btnExecuteActionPerformed(java.awt.event.ActionEvent evt) { if (!connected) { SwingUtilities.invokeLater( new Runnable() { public void run() { taResponse.append("No database connected./n"); } } ); } else { if (connection == null) { SwingUtilities.invokeLater( new Runnable() { public void run() { taResponse.append("Database connection error./n"); } } ); } else { try { query = tfSql.getText(); Statement stmt = connection.createStatement(); SwingUtilities.invokeLater( new Runnable() { public void run() { taResponse.append("Executing query: " query "/n"); } } ); rs = stmt.executeQuery(query); ResultSetMetaData rsmd = rs.getMetaData(); int count = rsmd.getColumnCount(); int i; rsLine = "/n"; while (rs.next()) { for (i = 1; i <= count; i ) { rsLine = rs.getString(i) " "; } rsLine = "/n"; } rsLine = "/n"; stmt.close(); SwingUtilities.invokeLater( new Runnable() { public void run() { taResponse.append(rsLine); } } ); } catch (SQLException e) { SwingUtilities.invokeLater( new Runnable() { public void run() { taResponse.append("Query failed./n"); } } ); e.printStackTrace(); } } } } private void btnDisconnectActionPerformed(java.awt.event.ActionEvent evt) { if (connected) { try { if (connection != null) { connection.close(); connection = null; SwingUtilities.invokeLater( new Runnable() { public void run() { taResponse.append("Database disconnected./n"); } } ); } } catch (SQLException e) { SwingUtilities.invokeLater( new Runnable() { public void run() { taResponse.append("Database disconnecting error./n"); } } ); e.printStackTrace(); } connected = false; driver = null; url = null; user = null; password = null; } else { SwingUtilities.invokeLater( new Runnable() { public void run() { taResponse.append("Database already disconnected./n"); } } ); } } private void btnConnectActionPerformed(java.awt.event.ActionEvent evt) { if (connected) { taResponse.append("Database already connected./n"); } else { driver = (String) cbDriver.getSelectedItem(); url = tfUrl.getText(); user = tfUser.getText(); password = tfPassword.getText(); try { SwingUtilities.invokeLater( new Runnable() { public void run() { taResponse.append("Using JDBC driver: " driver "/n"); } } ); Class.forName(driver).newInstance(); connection = DriverManager.getConnection(url, user, password); if (connection != null) { SwingUtilities.invokeLater( new Runnable() { public void run() { taResponse.append("Database " url " connected./n"); } } ); connected = true; } } catch (ClassNotFoundException e) { SwingUtilities.invokeLater( new Runnable() { public void run() { taResponse.append("Cannot load the driver./n"); } } ); e.printStackTrace(); } catch (SQLException e) { SwingUtilities.invokeLater( new Runnable() { public void run() { taResponse.append("Cannot connect to the database./n"); } } ); e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextArea taResponse; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel1; private javax.swing.JLabel jLabel6; private javax.swing.JTextField tfSql; private javax.swing.JButton btnExecute; private javax.swing.JPanel jPanel3; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel4; private javax.swing.JComboBox cbDriver; private javax.swing.JLabel jLabel7; private javax.swing.JTextField tfUrl; private javax.swing.JLabel jLabel9; private javax.swing.JTextField tfUser; private javax.swing.JLabel jLabel10; private javax.swing.JTextField tfPassword; private javax.swing.JButton btnConnect; private javax.swing.JButton btnDisconnect; } dbapplet.html ====================================================================== DB applet

DB applet

The Applet tag in this file contains a CODEBASE entry that must be set to point to a directory containing the Java classes from the Thin JDBC distribution *and* the compiled JdbcApplet.class.


<EMBED type="application/x-java-applet;version=1.3" width="550" height="500" align="baseline" code="DBApplet.class" codebase="." archive="classes111.zip" pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"> <NOEMBED> No Java 2 SDK, Standard Edition v 1.3 support for APPLET!!
我用的是数据库是Oracle,大家可以根据自己情况改改。
使用Java Applet访问数据库 使用Java Applet访问数据库 文章详细介绍了使用Java Applet访问数据库的方法 立即下载

相关推荐

Sciter教程_00_创建HelloWorld工程

本教程记录Sciter工程的创建和编译运行的过程。

qq_36707072的博客 2278

Windows微信数据库解密

Windows微信数据库解密、PC微信数据库解密

u011000995的博客 3673

BUCK降压电路设计实战:从理论到PCB的完整指南

本文详细介绍了BUCK降压电路的设计实战,从基础原理到PCB布局的完整指南。通过关键部件选型、PCB布局黄金法则和调试技巧,帮助工程师高效设计稳定可靠的开关电源。特别针对电感、MOSFET和电容选型提供实用公式和避坑指南,并分享高温环境下的工程经验与测试方法。

weixin_33744141的博客 466

关于在applet中使用JDBC访问数据库的一点总结

最近,在这里看到了几篇关于在applet中使用JDBC访问数据库的帖子,觉得大侠们有的回复很绝对,说applet不能访问数据库,不敢苟同,于是参照Sun的网上教程"[url=http://cn.sun.com/developers/onlineTraining/Programming/BasicJava1/data.html]Java程序设计语言基础: 实践指南,第1部

wangxd的专栏 1273

手把手教你用smarteye搭建免费GB28181监控平台(含海康设备接入避坑指南)

本文提供了一份基于SmartEye搭建免费GB28181视频监控平台的实战指南。详细介绍了从服务器部署、GB28181协议核心配置,到海康威视等主流设备接入的完整流程,并重点分享了设备注册失败、无法预览等常见问题的深度排错方法,旨在帮助中小企业及开发者低成本实现多品牌监控设备的统一管理。

pz89012345的博客 328

RFC 字符码转换深度解析:Unicode、非 Unicode 与 MDMP 系统的协奏

老版本 MDMP 系统不上传自定义映射时,Unicode 端会落回“预配置列表”。列表里可见西欧 1100、日文 8000、中文 8400 等经典编号。若需强制覆写映射,可在 SM59 ➡Unicode页签启用,或直接勾选作为兜底。字符编码问题常“潜伏”多年,一旦旧系统升级或新增语种便集中爆发。掌握 RFC code page 转换机理、灵活运用 SM59 选项、在早期对 LANG 字段和字段长度进行治理,是根治乱码与 short dump 的关键。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 227

微信 小程序 在电脑PC端无法加载的解决办法。电脑微信小程序打不开是怎么回事?电脑微信小程序不能打开解决方法教学

微信版本未及时更新,也会影响小程序的正常打开,可以尝试更新版本。

点赞的都能无bug通过! 3万+

【ATC/DTC方法第四期】GOT09-dT-tao 昼夜温度周期模型方法介绍(含Python代码实现)

GOT09-dT-tao 模型是一种经过简化和参数固定的 昼夜温度周期模型(Diurnal Temperature Cycle, DTC)。它从 GOT09 模型(Göttsche and Olesen, 2009)衍生而来,但更加轻量化,更适合在数据不足或参数估计困难的情境下使用。

WW、forever的博客 147

fastadmin框架二开的网站和小程序,在电脑端微信打开时报错

1、fastadmin框架二次开发的网站,在部分电脑端微信浏览器中打开报错;2、fastadmin框架中的插件-shopro商城系统,在版本3.0.0之前(1.3.0、1.3.9、1.4.0),在部分电脑端微信客户端,打开其插件发布的小程序时,首页提示“暂未找到模板,请前往装修”,分类、购物车、我的页面全部空白。

koudandan的博客 1011

图像算法中的 Blob 分析

在计算机视觉中,Blob 可以理解为在图像中具有相似性质(如颜色、亮度等)的像素群体。Blob 通常用作基本单元,在图像分析和处理任务中能够提取出有意义的特征。

m0_44975814的博客 2484

世界模型(World Models)进展全景调研(截至 2025-08)

A5) 2019-07(待核验) | C-SWM:Contrastive Structured World Models(Kipf et al.)A6) 2019-07(待核验) | SLAC:Stochastic Latent Actor-Critic(Lee et al.)A3) 2015-12(背景注记,待核验) | Embed to Control(E2C,Watter et al.)Nature 2020)Repro/Code:werner-duvaud/muzero-general(社区)

u013250861的博客 489

SQLite在3.7.0版本的WAL机制

   在android P上调试数据库拷贝问题时,发现应用的databases目录下除了普通的db后缀的数据库文件外,还有两个额外的文件,以我自己的应用为例,分别为 app.db、app.db-wal、app.db-shm。 然后发现即使已经往数据库更新数据后,通过工具打开db文件发现文件中的数据并未变化。调查了下发现是SQLite在3.7.0版本上的新特性。      1.什么是WAL?   ...

ws6013480777777的博客 1298

【学习系列】SAP RAP 8:行为定义-Authorization Control

本文介绍了SAP RAP中的授权控制实现方法,主要分为读取操作和修改操作两种场景。读取操作通过ABAP CDS的数据控制语言(DCL)实现,使用访问控制对象限制数据可见范围;修改操作则通过行为定义中的权限检查,包括全局授权、实例授权和预检查三种方式。文章详细说明了如何使用DCL创建访问控制规则,并通过实例演示了全局授权和实例授权的代码实现方法,以及预检查功能在数据更新前的权限验证。这些授权控制机制共同确保用户只能访问和操作其权限范围内的数据,有效保障系统安全性。

DeveloperMrMeng的博客 439

Japplet与Applet的区别

Swing必须是Japplet的子类,而非Swing小程序则是java.applet.Applet的子类 Applet是awt的JApplet是swing的 (1):Japplet的缺省布局管理器为borderLayout,Applet的布局管理器为FlowLayout。   JApplet类使用BorderLayout的一个实例做为其内容窗格的布局管理器,而BorderLayo...

Lwy2009058212的博客 1472

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java applet 一个简单的例子(applet+html)

java applet是一个类,其层次结构如下图:  类 JApplet  java.lang.Object    java.awt.Component        java.awt.Container            java.awt.Panel                java.applet.Applet                    javax.swing

caomiao2006的专栏 2万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

java常用类解析九:Applet(JApplet)详解及示例

1、Applet类及各个方法说明      Applet类提供一个基本框架,使得applet可以通过Web浏览器来运行,applet没有main方法,它依靠浏览器调用Applet类中的方法。Applet不安全。下面是截取的一段Applet类的源代码:  /** * Called by the browser or applet viewer to inform this applet

Touch_2011的专栏 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Atitit.java的浏览器插件技术 Applet japplet attilax总结

Atitit.java的浏览器插件技术  Applet  japplet attilax总结     1. Applet类及各个方法说明 1 2. JApplet类示例 2 3. / 用main方法运行JApplet   2 4. 设置获取参数 2 5. Firefox运行applet提示安全组织的解决 3 6. Japplet调用js 4 7. 调试的清除缓存 4 8

attilax的专栏 1040

java applet插件_Atitit.java的浏览器插件技术 Applet japplet attilax总结

Atitit.java的浏览器插件技术Appletjappletattilax总结1.Applet类及各个方法说明Applet类提供一个基本框架,使得applet可以通过Web浏览器来运行,applet没有main方法,它依靠浏览器调用Applet类中的方法·补充:JVM加载applet类,浏览器创建applet,浏览器调用init方法进行初始化,如果Applet的子·*类具有初...

weixin_29018335的博客 384

java applet实例_java applet 一个简单的例子(applet+html)

java applet是一个类,其层次结构如下图:类 JAppletjava.lang.Objectjava.awt.Componentjava.awt.Containerjava.awt.Paneljava.applet.Appletjavax.swing.JApplet编写applet类,继承Applet或是JApplet,然后完成init方法,在创建一个加载applet的html页面pack...

weixin_36310976的博客 768

applet第一个小例子(Applet类和JApplet类)

第一个例子JApplet继承自swing /*******HelloApplet.java*************/ [code="java"]package chapter9; import java.awt.Container; import javax.swing.JApplet; import javax.swing.JLabel; public class Hell...

270

Netbeans中创建Japplet程序

Applet类提供一个基本框架,使得applet可以通过Web浏览器来运行,布局管理器为FlowLayout,Applet没有main方法,它依靠浏览器调用Applet类中的方法。浏览器通过init、start、stop、destroy方法控制Applet,通常这些方法都是空方法,一般要覆盖这些方法实现操作。 Applet类没有考虑与Swing组件一起工作,所以从Applet类扩展出了一个JAp...

木生火 778

如何创建 java japplet,netbeans中创建applet程序(网上收集)

Web应用程序是为互联网编写的应用程序,很多语言都支持Web程序的开发,例如Perl、ASP.NET、Java等。NetBeans集成开发环境提供了对Web程序开发的良好支持,可以创建空Web应用程序项目、快速编写HTML页面、建立JSP文件、开发Servlet、使用JavaServer Faces和Struts框架、开发Applet小程序、创建和使用标记等。本章首先介绍如何开发一个可以在网页上运...

weixin_39616003的博客 553

java applet paint_java – 重写JApplet中的paint方法

经过大量研究,我发现问题在于JApplet的绘制方法不经常被调用.相反,内容窗格有自己的绘图表面,所以我只需要替换内容窗格以使其上传.继承人我这样做的方式:@Overridepublic void init(){double xFactor = ((double)(this.getWidth()))/((double)(qt.ORIGINAL_APPLET_WIDTH));double yFact...

weixin_32148341的博客 377
上一篇: Phone.com UP.SDK4.0开发工具包
下一篇: 在Java Applet中发Email (转载)
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值