为什么有时好用,有时不好用?!用beans查询数据库,查不出数据时,后台显示"NO suitable driver",如何解决?(100分)

  • 主题发起人 主题发起人 coobo
  • 开始时间 开始时间
C

coobo

Unregistered / Unconfirmed
GUEST, unregistred user!
========================.java
package selectchart;
import java.sql.*;
public class beanSQL {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:sunshine";
Connection conn = null;
ResultSet rs = null;
public void beanSQL() {
try {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println("beanSQL(): " + e.getMessage());
}
}
public ResultSet mySelect(String sql) {
rs = null;
try {
conn = DriverManager.getConnection(sConnStr);
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
return rs;
}
public void myUpdate(String sql) {
try {
conn = DriverManager.getConnection(sConnStr);
Statement stmt = conn.createStatement();
stmt.executeUpdate(sql);
}
catch(SQLException ex) {
System.err.println("aq.executeQuery: " + ex.getMessage());
}
}

===========================.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page language="java" import="java.sql.*" %>
<%@ page import="java.sql.*"%>
<%@ page info="database handler"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<%@ page import="java.lang.*"%>
<%@ page session="true"%>
<jsp:useBean id="recordSelect" scope="page" class="selectchart.beanSQL" />
<jsp:setProperty name="recordSelect" property="*" />
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<title>Untitleddo
cument</title>
<meta http-equiv="Content-Type" content="text/html;
charset=gb2312">
</head>
<script>
function AddField(Title,Value,TargetList) {
var objSelected = new Option(Title, Value);
TargetList.options[TargetList.length] = objSelected;
// TargetList.options[TargetList.lengg.-1].selected = true;
}
function pageload(){
<%
try{
String tablename;
String tableshow;
String sqlstr="SELECT * FROM tablelist";


ResultSet rsTableName = recordSelect.mySelect(sqlstr);

while (rsTableName.next()) {
tablename = rsTableName.getString("tablename");
tableshow = rsTableName.getString("tableshow");

%>
//AddField("aaa","aaa",document.forms.frmTableName.lstTableName);
AddField("<%=tableshow%>","<%=tablename%>",document.forms.frmTableName.lstTableName);
<% }
rsTableName.close();
}
catch(Exception ex) {} %>

}
function tablechange(){
<% session.putValue("cansave","no");%>
frmTableName.submit();

}
</script>
<body bgcolor="#FFFFFF" onLoad="pageload();">
<table width="86%" border="1" height="39" align="left" cellspacing="0" bordercolorlight="#FFFFFF">
<form name="frmTableName" action="chartbottom.jsp" target="chartbottom" method="POST">
<tr>
<td width="26%" height="29">数据库名称</td>
<td width="74%" height="29">
<select name="lstDatabaseName" size="1" onChange="javascript: parent.charttopright.location.reload();">
<option value="数据库1">数据库1</option>
<option value="数据库2">数据库2</option>
<option value="数据库3">数据库3</option>
<option value="数据库4">数据库4</option>
</select>
</td>
</tr>
<tr>
<td width="26%" height="21">数据表名称</td>
<td width="74%" height="21">
<select name="lstTableName" size="1" onChange="tablechange()">
</select>
</td>
</tr>
</form>
</table>
</body>
</html>

 
 
<p>把JSP文件中的这一行去掉,&amp;lt;jsp:setProperty name=&amp;quot;recordSelect&amp;quot;
property=&amp;quot;*&amp;quot;
/&amp;gt;<br>
试试看。</p>
 
如果用一个好用的bean调过一个数据库后,再用我的这个就好用了.
你说怪不怪,你说怪--不--怪!
 
问题在这个地方:public void beanSQL()
把它改为public beanSQL()。将void 去掉。
 
好像是这个原因(两个bean仅有的差别),不过我还想请教一下为什么?
函数可以没有返回值吗?这属于构造函数吗,我的基本知识不好.
另外,在bean中写的其他函数会自动执行吗?如一个close数据库的方法,如果jsp也中
没调过它,它会起作用吗?
 
1。这个属于构造函数,在类构造时自动运行,构造函数是不能有返回值的。
2。在bean中写的其他函数是不会自动执行的。
 
明白了.
不过坛主也要挣"银子"吗?哈哈哈
送分啦.
 
接受答案了.
 
白花花的银子,能不爱吗?:)
其实还是希望提问的同志自己结束问题,这样好一些。
由坛主来解决总之不好。
 
后退
顶部