JavaBean操作Oracle数据库

原创 2002年05月28日 09:46:00

  本文以一个完整的JavaBean数据库访问程序简要说明jsp操作数据库。

  本程序由3个bean组成,其中WebConstants中定义全局变量,ConnectionManager管理数据库连接,MainBean利用WebConstants和ConnectionManager操作数据库。

首先定义全局变量,如下:

package WebRelease;

public interface WebConstants
{
  public static final String driverClass ="driverClass";
  const userId is the user id to connect to database
  public static final String userId ="comm";
  const passWd is the user password to connect to database
  public static final String passWd ="comm123";
  const url is the url to connect to database
  public static final String url="jdbc:oracle:thin:@10.2.0.1:1521:ORCL";
  public static final String selectType ="select";
  public static final String connection ="connection";
  public static final String connError ="conError";
}

接着创建一个数据库连接管理bean,如下:

package WebRelease;

import java.io.*;
import java.beans.*;
import java.util.*;
import java.sql.*;
import WebRelease.WebConstants;
import oracle.jdbc.driver.*;

public class ConnectionManager implements WebConstants
{
  private boolean debug = true;
  protected Connection con;
  protected DebugWriter writer;
  PropertyChangeSupport pcs;
////////////////////////////////////////////////////////////////////////////////
  public ConnectionManager()
  {
    pcs = new PropertyChangeSupport(this);
    writer = new DebugWriter();
  }
////////////////////////////////////////////////////////////////////////////////
  public void setDebug(String b)
  {
    debug = b.equals("true");
  }
////////////////////////////////////////////////////////////////////////////////
  public void addPropertyChangeListener( PropertyChangeListener l)
  {
    pcs.addPropertyChangeListener(l);
  }
////////////////////////////////////////////////////////////////////////////////
  public void removePropertyChangeListener(PropertyChangeListener l)
  {
    pcs.removePropertyChangeListener(l);
  }
////////////////////////////////////////////////////////////////////////////////
  public void login()
  {
    try
    {
      DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
      Class.forName("oracle.jdbc.driver.OracleDriver");
    }
    catch(Exception e)
    {
      if(debug) {  writer.writeDebug("Error setting driver:"+e.getMessage());}
    }
    try
    {
      con = DriverManager.getConnection(url,userId,passWd);
      pcs.firePropertyChange(connection,null,con);
      if(debug)
      {
        writer.writeDebug("connection succeded ! URL:"+url+"User:"+userId+
                          "Pwd:"+passWd);
      }
    }
    catch(Exception e)
    {
      pcs.firePropertyChange(connError,null,e);
      if(debug)
      {
        writer.writeDebug("connection failed ! URL:"+url+"User:"+userId+
                          "Pwd:"+passWd);
      }
    }

  }
}

在MainBean中,侦听数据库是否连接,如果连接则对数据库进行操作:

package WebRelease;

import java.io.*;
import java.beans.*;
import java.util.*;
import java.sql.*;
import WebRelease.*;

public class MainBean implements PropertyChangeListener ,WebConstants
{
  private boolean debug = true;
  protected Connection con;
  protected DebugWriter writer;
////////////////////////////////////////////////////////////////////////////////
  public MainBean()
  {
  writer = new DebugWriter();
  }
////////////////////////////////////////////////////////////////////////////////
  public void propertyChange(PropertyChangeEvent evt)
  {
  String prop = evt.getPropertyName();
 //see if we got a connection
  if(prop.equals(connection))
    {//ok so update the local connection
      try
      {
        //make sure it really is a connection
        con = (Connection)evt.getNewValue();
      }
      catch(Exception e)
      {
        writer.writeDebug("Error connecting to database"+e.getMessage());
      }
    }
  }
////////////////////////////////////////////////////////////////////////////////
  public void setConnectionManager(ConnectionManager cm)
  {
    if(cm != null)
    {
      // to remove the old listener from cm
      // to avoid confusion in the mainbean
      cm.removePropertyChangeListener(this);
      cm.addPropertyChangeListener(this);
      if(debug)
      {
        writer.writeDebug("MainBean;Set connection manager"+ cm.toString());
      }
    }
    else
    {
     if(debug)
      {
        writer.writeDebug("MainBean;Tried to set a null connection manager");
      }
    }
  }
////////////////////////////////////////////////////////////////////////////////
  public boolean isConnected()
  {
    //see if datatabe is connected
    return (con != null);
  }
////////////////////////////////////////////////////////////////////////////////
 public void processQuery()
 {
 try
 {
  Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("select * from hello order by id");
 writer.writeDebug("select * from hello order by id");
while(rs.next())
{
writer.writeDebug("next");
String str=rs.getString("name");
writer.writeDebug(str+"  &nbsp   ");
}
rs.close();
}
catch(Exception e)
{
}


 }
}

 

OK,现在我们来测试一下这个程序,创建一个测试页面:

<%@ page contentType="text/html; charset=gb2312" %>


<html>
<head>
<title>
hello
</title>
</head>
<body bgcolor="#ffffc0">
<h1>
<jsp:useBean id="main" class="WebRelease.MainBean" scope ="session"/>
<jsp:useBean id="con" class="WebRelease.ConnectionManager" scope ="session"/>
<%
main.setConnectionManager(con);
con.login();
%>
<%
if(main.isConnected())
out.print("mainbean connect success!!!");
main.processQuery();

%>

</h1>


</body>

</html>

在tomcat中浏览这个页面,我们应该可以看到输出“Mainbean connect sucess!!!”

注释不是太多,希望你能看明白。


 

jsp之javaBean操作数据库添加数据

1.思想就是在数据库的增 删 改 查 中每步中都需要连接到数据库,为了简化代码。使用javaBean 分别把用户类,连接类,操作类 打包 2 login代码: 用户名: 密 码: 用户类型: ...
  • QQ736238785
  • QQ736238785
  • 2017年03月15日 22:55
  • 604

Java 基础加强 - JavaBean与内省操作

Java基础加强JavaBean与内省操作 一.JavaBean 1.     什么叫做JavaBean? JavaBean是一种特殊的Java类,主要用于传递数据信息,这种Java类中的方法主要用于...
  • hua631150873
  • hua631150873
  • 2013年09月18日 22:19
  • 1512

java+javabean 连接数据库 写数据 读数据

这是一个案例BBS留言板 首先建表 写一个表示留言数据的javabean  写一个执行数据库操作的javaben  public class MessageBean {...
  • chenaini119
  • chenaini119
  • 2014年08月07日 15:04
  • 1147

初识JavaBean和EL表达式笔记

一、JavaBean的概念 1、JavaBean就是一个遵循特殊写法的普通类 2、特殊写法 a、必须有默认的构造方法 b、所有字段定位私有的    c、提供公有的getter或setter方...
  • xys_00
  • xys_00
  • 2016年01月16日 10:44
  • 637

JSP第三篇【JavaBean的介绍、JSP的行为--JavaBean】

什么是javaBean JavaBean就是一个普通的java类,也称之为简单java对象–POJO(Plain Ordinary Java Object),是Java程序设计中一种设计模式,是一种基...
  • hon_3y
  • hon_3y
  • 2017年02月03日 21:21
  • 497

实现JavaBean和json之间的相互转换

使用json-lib组件实现  *    需要  *     json-lib-2.4-jdk15.jar  *     ezmorph-1.0.6.jar  *     common...
  • kaidishi
  • kaidishi
  • 2013年08月07日 10:59
  • 2688

Javabean+JSP 实现文件的上传 显示 下载

实验六 文件操作 一、实验目的 1.继续掌握JavaBean的概念。 2.掌握JSP的输入和输出流。 3.掌握在页面中读写文件中的数据。 4.掌握如何进行文件操作。 二、实验要求 1...
  • Coder__CS
  • Coder__CS
  • 2017年05月23日 22:51
  • 542

JavaBean学习--练习示例

初识Javabean,没感觉这鸟东西有什么好用的,一定是我太笨了 自己用jsp测试了下,这里用application作用域做个示例 Insert title here Applic...
  • k183000860
  • k183000860
  • 2015年08月02日 11:35
  • 586

JavaBean在Java Web中访问范围总结

JavaBean是一种可重复使用、跨平台的软件组件,在JSP中通过特定的JSP标签可以访问JavaBean。本文总结JavaBean的4种存放范围的特性。...
  • u010096900
  • u010096900
  • 2015年05月30日 20:12
  • 3087

JAVABEAN是什么和总结JAVABEAN的两种使用方式

原文:http://www.blogjava.net/flysky19/articles/88180.html 一、 javabean 是什么? Javabean 就是一个类,这个类就定义一系列 g...
  • Anglebeat
  • Anglebeat
  • 2015年02月07日 00:14
  • 49952
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JavaBean操作Oracle数据库
举报原因:
原因补充:

(最多只允许输入30个字)