0 0

关于数据库连接的一个javabean配置的问题10

oracleutil.java如下:
package com.oracleutil;

import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;



public class OracleUtil {
private String dataSourceName;
private DataSource ds;

public OracleUtil() {

}

public OracleUtil(String dataSourceName) {
  this.dataSourceName = dataSourceName;
}

public void setDataSourceName(String dataSourceName) {
  this.dataSourceName = dataSourceName;
}

public void init() {
  try {
   Context initContext = new InitialContext();
   this.ds = (DataSource) initContext.lookup(dataSourceName);
   initContext.close();
  } catch (NamingException e) {
   e.printStackTrace();
  }
}

public int update(String sql, String[] params) {
  QueryRunner qr = new QueryRunner(ds);
  int result = 0;
  try {
   result = qr.update(sql, params);
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return result;
}

public Object query(String sql, String[] params, ResultSetHandler rsh) {
  QueryRunner qr = new QueryRunner(ds);
  Object results = null;
  try {
   results = qr.query(sql, params, rsh);
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return results;
}
}


我用的驱动是class12.java,运行的时候报错java.lang.NoSuchMethodError: com.oracleutil.OracleUtil.update(Ljava/lang/String;Ljava/lang/Object;)I
请指教!

问题补充:
successfulroof 写道
这不是驱动的问题,是你程序的问题。
你调用的时候用的是 update(String[] args,Object[] obj)
但是你定义的是 update(String sql, String[] params)

  请教一下咋改正!
OracleUtil程序:
package com.oracleutil;

import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;



public class OracleUtil {
private String dataSourceName;
private DataSource ds;

public OracleUtil() {

}

public OracleUtil(String dataSourceName) {
  this.dataSourceName = dataSourceName;
}

public void setDataSourceName(String dataSourceName) {
  this.dataSourceName = dataSourceName;
}

public void init() {
  try {
   Context initContext = new InitialContext();
   this.ds = (DataSource) initContext.lookup(dataSourceName);
   initContext.close();
  } catch (NamingException e) {
   e.printStackTrace();
  }
}

public int update(String sql, String[] params) {
  QueryRunner qr = new QueryRunner(ds);
  int result = 0;
  try {
   result = qr.update(sql, params);
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return result;
}

public Object query(String sql, String[] params, ResultSetHandler rsh) {
  QueryRunner qr = new QueryRunner(ds);
  Object results = null;
  try {
   results = qr.query(sql, params, rsh);
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return results;
}
}


<%@ page language="java" pageEncoding="utf-8"%>
<%@ page
import="java.text.SimpleDateFormat"%>
<%@ page import="com.StringUtil"%>



<%@ include file="/header.jsp"%>
<jsp:useBean id="db" class="com.oracleutil.OracleUtil" scope="request"></jsp:useBean>
<jsp:useBean id="gb" class="com.guestbook.Guestbook" scope="request"></jsp:useBean>
<%request.setCharacterEncoding("utf-8"); %>
<jsp:setProperty property="*" name="gb" />

<%
String sql = "insert into guestbook (id,name,email,phone,title,content,time) values(gb_seq.nextval,?,?,?,?,?,?)";
int result = 0;

String name = gb.getName();
String title = gb.getTitle();

if (StringUtil.validateNull(name)) {
%>
对不起,姓名不能为空,请您重新输入!<br>
<a href="<%=context%>/addMessage.jsp">添加新的留言</a><br>
<%} else if (StringUtil.validateNull(title)) {%>
对不起,主题不能为空,请您重新输入!<br>
<a href="<%=context%>/addMessage.jsp">添加新的留言</a><br>
<% } else {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String param[] = { StringUtil.filterHtml(name), StringUtil.filterHtml(gb.getEmail()),
StringUtil.filterHtml(gb.getPhone()), StringUtil.filterHtml(title),
gb.getContent(), sdf.format(new java.util.Date()) };
    db.setDataSourceName("java:/comp/env/jdbc/oracleds");
db.init();
result = db.update(sql, param);

if (result == 0) {
%>
对不起,添加留言不成功,请您重新输入!<BR>
<a href="<%=context%>/addMessage.jsp">添加新的留言</a><BR>
<%} else { %>
祝贺您,成功添加留言。<BR>
<a href="<%=context%>/getMessages.jsp">查看所有留言内容</a><BR>
<%}
}%>  
<%@ include file="/footer.jsp" %>
2011年12月16日 18:13

1个答案 按时间排序 按投票排序

0 0

这不是驱动的问题,是你程序的问题。
你调用的时候用的是 update(String[] args,Object[] obj)
但是你定义的是 update(String sql, String[] params)

2011年12月17日 16:10

相关推荐

    使用JavaBean连接数据库

    * 提高安全性:JavaBean可以隐藏数据库连接细节,提高安全性。 使用JavaBean连接数据库的注意事项: * 需要正确配置数据库驱动包和连接字符串。 * 需要正确处理异常,避免数据库连接泄露。 * 需要正确关闭连接和...

    JavaBean数据库连接池

    本例子通过一个具体的JavaBean实现展示了如何创建和管理数据库连接池。这个JavaBean可能包含以下属性: 1. 数据库URL:例如`jdbc:mysql://localhost:3306/mydatabase` 2. 用户名:用于连接数据库的用户名 3. 密码:...

    javabean连接数据库SQL2000

    在这个例子中,`getConnection()`方法创建并返回一个数据库连接。我们使用`Class.forName()`来加载JDBC驱动,并通过`DriverManager.getConnection()`建立连接。`closeConnection()`方法用于关闭连接,确保资源得到...

    数据库表生成javabean工具及源代码(修正版)

    总的来说,"数据库表生成javabean工具及源代码(修正版)"是Java开发中的一个实用工具,它简化了数据模型到代码的转换过程,尤其适用于数据库驱动的应用开发。合理利用这类工具,可以优化开发流程,让开发团队更加...

    JAVA基础:将数据库操作封装到Javabean文档信息

    在 Java 开发中,数据库操作是一个非常重要的部分,但是直接使用 Java.sql 包中的类来操作数据库,会带来一些问题,例如资源未释放的问题。为了解决这些问题,开发者们通常会将数据库操作封装到 Javabean 中,以隐藏...

    JSP分页代码-数据库连接池+JavaBean+JSP+SQL Server+JDBC3.0的数据库分页技术

    //定义Linkdb类的一个对象。 public Pagi()//定义构造器,初始化每页显示的主题数和数据库的连接。 { intPageSize=4; //每页显示的记录数目 db = new DB(); } //Countsql:总记录的Query字符串。[形式为select ...

    javabean 实现access数据库的访问实例

    JavaBean部分的核心是一个名为`conn`的类,它实现了数据库连接和查询操作。`conn`类导入了必要的`java.sql`包,并定义了数据库驱动、连接字符串和其他变量。`conn`类的构造函数注册了JDBC驱动`sun.jdbc.odbc....

    java测试数据库连接

    在Java编程中,数据库连接是不可或缺的一部分,尤其是在开发Web应用程序时。本文将深入探讨如何在Java中实现数据库连接,包括直接使用Java类、利用JSP和JavaBean以及使用Tomcat连接池三种方法。 首先,我们来看直接...

    javabean数据库连接

    在这个案例中,JavaBean 封装了一个用于数据库连接的类 `Conn`。该类包含了连接数据库、执行 SQL 更新操作和执行 SQL 查询操作的方法。下面将详细介绍这几个方面: 1. **数据库连接配置**: - 类 `Conn` 定义了...

    基于数据库的自动化生成工具,自动生成JavaBean、自动生成数据库文档等(v5.0.0版_JAR)

    包括用MyEclipse连接数据库生成JavaBean,但多多少少还是会有一些不尽人意的地方,包括表和表字段的comment总是无法生成,而且还会生成很多无用的注释代码,让代码看起来一点都不干净,配置非常繁琐等等问题。...

    jsp+javabean 学生管理系统 sql数据库

    4. **连接数据库**:在JSP或JavaBean中配置数据库连接,使用JDBC(Java Database Connectivity)接口与数据库交互。 5. **实现功能**:实现注册、登录、查询、添加、修改和删除学生信息等功能。 6. **测试**:最后,...

    JavaWeb开发技术-数据库连接池.pptx

    例如,使用JavaBean可以创建一个数据库连接池,提供给应用程序使用。使用Servlet可以实现数据库连接池的管理和分配。使用JSP可以实现数据库连接池的配置和管理。使用XML可以实现数据库连接池的配置和定义。 数据库...

    javabean连接数据库

    下面是一个示例,展示如何使用JavaBean执行一个SQL查询: ```java public class UserBean { private String name; private int age; // 构造函数、getter和setter略 public static List&lt;UserBean&gt; getUsers...

    根据数据库表字段自动生成javaBean工具(支持Mysql,Oracle)

    - 示例配置文件:`example.config.properties`,展示如何配置数据库连接等信息。 - 依赖库:可能包含一些必要的JAR文件,如数据库驱动等。 - 模板文件:用于生成JavaBean代码的模板,可能可以自定义。 通过上述...

    基于数据库的自动化生成工具,自动生成JavaBean、自动生成数据库文档等(v5.8.0版)

    标题中的“基于数据库的自动化生成工具,自动生成JavaBean、自动生成数据库文档等(v5.8.0版)”指的是一个软件工具,它能够帮助开发者快速地根据数据库结构自动生成相关的Java代码和文档,大大提高了开发效率。...

    一个纯jsp+Javabean+mysql的学生信息管理系统,比较适合Javaweb初学者

    本篇文章将深入探讨一个纯JSP+Javabean+MySQL构建的学生信息管理系统,旨在为JavaWeb新手提供详尽的学习资源。 首先,我们要理解这个系统的架构。JSP(JavaServer Pages)是一种动态网页技术,允许开发者在HTML中...

    用JSP+JavaBean+Servlet开发的数据库应用实例——CD管理系统

    2. **JavaBean创建**:创建一个名为`CDBean`的Java类,对应`CD`表的结构,封装字段并提供getter和setter方法。此外,还需定义一些业务方法,如`addCD()`, `deleteCD()`, `updateCD()`和`searchCD()`。 3. **Servlet...

Global site tag (gtag.js) - Google Analytics