数据库问题????

zwd2878 2003-12-03 11:27:15
我写了个bulletins.properties文件
内容为:
db_driver=oracle.jdbc.driver.OracleDriver
db_url=jdbc:oracle:thin:@192.168.0.11:1521:orcl1
db_user=test
db_password=test

在java文件中,我通过下面方式调用

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.sql.*;

public class bulletinshttp extends HttpServlet
{
private static Properties http_props = new Properties();
private static String db_Driver;
private static String db_Url;
private static String db_User;
private static String db_Password;


Connection connect;

public void init(ServletConfig configuration)
throws ServletException
{
super.init(configuration);

try
{
// FileInputStream infile = new FileInputStream("/bulletins/bulletins.properties");

InputStream infile = this.getClass().getResourceAsStream("/bulletins.properties");




http_props.load(infile);
db_Driver = http_props.getProperty("db_driver");
db_Url = http_props.getProperty("db_url");
db_User = http_props.getProperty("db_user");
db_Password = http_props.getProperty("db_password");



infile.close();
}
catch (Exception e)
{
System.out.println(e);
}
}

public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
doPost(req, resp);
}

public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{


PrintWriter outhtml;

String driver = db_Driver;
String url = db_Url;
String user = db_User;
String password = db_Password;
String urlextrapath;

resp.setContentType("text/html");
outhtml = resp.getWriter();

/*
outhtml.println ("driver = "+driver);
outhtml.println ("url = "+url);
outhtml.println ("user = "+user);
outhtml.println ("password = "+password);
*/

try
{
Class.forName(driver);
connect = DriverManager.getConnection("url", "user", "password");
urlextrapath = req.getPathInfo();
bulletins bltn = new bulletins();
bltn.connect = connect;
Enumeration enum = req.getParameterNames();


…………………………………………………………………………

…………

}
catch(ClassNotFoundException e)
{
outhtml.println ("Cannot load driver:"+ e.getMessage ());
}
catch(SQLException e)
{
outhtml.println ("SQLException: "+e.getMessage ());
}
finally
{
try
{
if(connect!=null)
connect.close ();
}
catch(SQLException ignored)
{}

}
}
}



另外,在tomcat的common/lib里面已经加了class12.jar及class12.zip

可是最后测试时:却捕捉到下面的错误(在html页面上)

SQLException: No suitable driver


请高手指点,如何调试??

万分感谢:)
...全文
37 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lekuaile 2003-12-06
  • 打赏
  • 举报
回复
connect = DriverManager.getConnection("url", "user", "password");这句中的参数不应该加双引号呀,他们不是变量吗?应该是
connect = DriverManager.getConnection(url, user, password);
zwd2878 2003-12-06
  • 打赏
  • 举报
回复
真的是这样吗??
zwd2878 2003-12-06
  • 打赏
  • 举报
回复
俺试了,不是环境变量的问题。

我觉得应该是server文件的事情,在server文件中也有数据库的连接,而在servlet中也有,两者可能冲突,所以不通了。

不知是不是这样,我用一个testdb作实验成功了,
testdb文件如下:

<%@ page contentType="text/html;charset=GBK"%>
<%@ page import= "java.sql.* "%>
<%@ page import= "javax.naming.* "%>
<%
try{
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
//获取连接池对象
Object obj = (Object) ctx.lookup("jdbc/OracleDB_test");
//类型转换
javax.sql.DataSource ds = (javax.sql.DataSource)obj;
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
//String strSql = "insert into test(id,name) values('00001','holen')";
//stmt.executeUpdate(strSql);
String strSql = "select id,name from test";
ResultSet rs = stmt.executeQuery(strSql);
if(rs.next()){
out.println(rs.getString(1));
out.println(rs.getString(2));
}
}catch(Exception ex){
ex.printStackTrace();
throw new SQLException("cannot get Connection pool.");
}
%>
<hr>
zwd2878 2003-12-06
  • 打赏
  • 举报
回复
HASHMAP
俺还没有用过:)不知道怎么用,
高手可以教教俺吗,谢谢:)
hymarx 2003-12-04
  • 打赏
  • 举报
回复
Class.forName(driver);
把driver debug出来看看
再看看这个方法的返回值
很哟可能是classpath问题,在环境变量里把class12.jar加进去看看
connect = DriverManager.getConnection("url", "user", "password");
cocosunshine 2003-12-04
  • 打赏
  • 举报
回复
我前一段用HASHMAP做了一个类似的~~
cocosunshine 2003-12-04
  • 打赏
  • 举报
回复
倒,你为什么不用HASHMAP读呢~~
zwd2878 2003-12-04
  • 打赏
  • 举报
回复
我试了,db_Driver能读出来。


如果我在server文件中也做了连数据库的设置,在servlet中如上所示,会不会冲突呀?

qiume 2003-12-04
  • 打赏
  • 举报
回复
SQLException: No suitable driver

加载驱动错误
mysam 2003-12-04
  • 打赏
  • 举报
回复
你的驱动好像加载错了
xuewuz 2003-12-04
  • 打赏
  • 举报
回复
你的属性文件是否真的读进来了?看看 db_Driver=“oracle.jdbc.driver.OracleDriver"?
lijong29909 2003-12-04
  • 打赏
  • 举报
回复
4.2. My application throws a SQLException 'No Suitable Driver'. Why is this happening?

One of two things are happening. Either the driver is not in your CLASSPATH (see the "INSTALLATION" section above), or your URL format is incorrect (see "Developing Applications with MySQL Connector/J").

mysql上面的
lijong29909 2003-12-04
  • 打赏
  • 举报
回复
注册驱动的驱动名称写错了
ladofwind 2003-12-04
  • 打赏
  • 举报
回复
本文档详细介绍了sybase ASE的从基本感念到具体的详细的操作,目录如下: 1. 基本概念篇 5 1.1 什么是Sybase Adaptive Server Enterprise (ASE)? 5 1.2 Sybase 具有哪些Server以及这些Server的用途? 5 Backup Server 5 1.3 什么是登录帐户? 5 1.4 什么是角色,Sybase具有哪些常用的系统角色以及这些系统角色的作用? 5 1.5 什么是超级用户,它具有哪些特点? 6 1.6 什么是数据库设备? 7 1.7 什么是数据库? 7 1.8 Sybase具有那些重要和必要的系统数据库,它们的作用分别是什么? 7 1.9 什么是数据库用户,以及登录帐户与数据库用户的区别? 7 1.10 什么是用户定义组? 7 1.11 什么是数据库的属主? 8 1.12 什么是数据库选项,Sybase具有那些常用的数据库选项? 8 1.13 什么是数据库一致性检查,Sybase具有哪些常用的检查命令? 9 1.14 什么是 APL表和DOL表,它们的特点和区别? 9 1.15 什么是Sybase的锁,它具有哪些类型以及这些锁的作用? 9 1.16 什么是数据库备份和恢复? 11 2. 日常维护篇 12 2.1 常规数据库服务器维护的基本要点和步骤? 12 2.2 例行数据库备份恢复策略和必要步骤? 13 2.3 查找定位数据库服务器性能问题的常用工具和方法? 14 2.4 开发数据库应用时需要开发人员重点关注的几个问题? 18 2.5 如何在Windows 平台上启动和关闭Sybase数据库服务器? 18 2.6 如何在UNIX平台上启动和关闭Sybase数据库服务器? 18 2.7 如何使用交互式管理工具isql? 19 2.8 如何在Windows操作系统上安装Open Client12.0 19 2.9 如何使用图形化管理工具Sybase Central? 19 2.10 如何使用图形化管理工具Dsedit实用程序? 22 2.11 如何创建登录帐户? 26 2.12 如何修改自己以及其登录帐户的口令? 26 2.13 如何查看登录帐户的信息? 27 2.14 如何设置登录帐户的缺省数据库? 27 2.15 如何为登录帐户授予系统角色? 27 2.16 如何创建数据库设备? 28 2.17 如何把数据库设备设置为缺省设备? 28 2.18 如何镜像数据库设备和取消数据库设备镜像? 28 2.19 如何创建数据库? 29 2.20 如何在Sybase Central中配置Monitor Server? 30 2.21 如何配置用户自定义命名缓存以及缓冲池? 30 2.22 如何扩展数据库? 31 2.23 如何设置数据库为单用户模式? 31 2.24 如何把数据库设置为自动截断事务日志? 31 2.25 为了可以在用户事务中执行数据定义语言,应如何设置数据库选项? 32 2.26 如何设置数据库选项可以在用户表中自动添加序号生成器? 32 2.27 如何为数据库创建数据库用户? 32 2.28 如何创建用户自定义组? 32 2.29 如何改变用户自定义组中数据库用户? 33 2.30 如何查看数据库空间的大小? 33 2.31 如何改变数据库的属主? 33 2.32 如何执行sp_configure 系统存储过程来查看系统参数? 33 2.33 如何为当前的Sybase数据库服务器设置最大可用内存? 34 2.34 影响数据库服务器内存配置的基本参数 34 2.35 如何为当前的Sybase ASE 12.5设置可用的数据缓存? 35 2.36 如何为当前的Sybase ASE 12.5设置可用的过程缓存? 35 2.37 如何为当前的Sybase数据库服务器设置可用的最大数据库设备数量? 35 2.38 如何为当前的Sybase数据库服务器设置可用的最大锁数? 36 2.39 如何为当前的Sybase数据库服务器设置可用的最大用户连接数? 36 2.40 如何备份数据库? 36 2.41 如何进行数据库的增量备份? 37 2.42 如何恢复数据库? 37 2.43 如何截断数据库的事务日志? 38 2.44 如何恢复数据库到某一具体时间? 38 2.45 如何把表、索引等数据库对象的定义从数据库中导出来? 38 2.46 如何把整个数据库中所有用户表的数据全部导出来? 39 2.47 如何执行快速bcp操作? 39 2.48 如何查看当前数据库中的进程信息? 39 2.49如何查看当前数据库中锁发生的情况? 40 2.50 如何更改用户表的锁模式? 40 2.51 如何执行optdiag命令来监控表和索引的物理使用情况? 40 2.52 如何执行reorg 系列命令来优化Dol表及其索引? 41 2.53 如何使用sp_sysmon存储过程来查看当前数据库的性能情况? 41 3. 技术专刊 43 3.1 关于Backup Server 43 3.2 Backup Server的名字 46 3.3 Sybase的数据库设备 47 3.4 数据库选项(dboptions)的使用与管理 48 3.5 Index & Performance 51 3.6 SYBASE ASE 事务日志 55 3.7 阀值管理(Threshold Management) 60 3.8 日常后备数据库 64 3.9 使用dump transaction with no_log的危险性 65 3.10 在ASE 11.9.2版中采用了行级加锁机制以提高性能 65 3.10.1 所支持的加锁机制 66 3.10.2 对小量数据的多次并发访问 70 3.10.3 堆栈表和热点 73 3.10.4 死锁 74 3.10.5 何时使用不同类型的加锁方法 77 3.10.6 结论 79 3.11 DBCC 79 3.12 Sybase ASE的字符集 84 3.12.1 概念 84 3.12.2 配置 89 3.12.3 错误处理 96 3.12.4 附:如何安装cp936字符集 97 4. 提高篇 98 4.1 为什么数据库事务日志满了,使用dump tran with no_log仍不能截断日志? 98 4.2 如何后备数据量大于2GB的数据库 98 4.3 如何更改ASE名称(在UNIX、OPENVMS平台上) 99 4.4 如何在HP平台BCP OUT超过2G的数据 99 4.5 如何将ASE SERVER移植到同种平台(相同操作系统)的系统上 100 4.6 如何扩展master数据库空间 103 4.7 Invalid tdslength value 105 4.8 如何将master设备从UNIX的文件系统移到裸分区 106 4.9 如何生成bcp命令文件(以pubs2为例) 107 4.10 如何动手修改interfaces文件 107 4.11 关于tempdb的优化 108 4.12 ASE12.5.x的一条有用的命令: disk resize 110 4.13 如何更改字符集为cp936 110 5. 灾难恢复篇 111 5.1 数据库服务不能启动 111 5.1.1 如何查找数据库启动失败原因 111 5.1.2 简单故障及排除方法 111 5.1.3 master数据库日志满了,server无法启动,怎么办 (error 1105) 112 5.1.4 SQL Server 10.x配置内存过大、Server不能启动时怎么办? 113 5.2 数据库被挂起 113 5.2.1 如何解决数据库被挂起的问题(error 926) 113 5.2.2 如何做 rebuild log 116 5.3 数据库恢复 118 5.3.1 如何删除坏的用户数据库?(以pubs2为例) 118 5.3.2 如何做Rebuild Master 119 5.3.3 如何恢复master数据库 121 5.3.4 如何移植master设备 123 5.3.5 如何重建sybsystemprocs系统数据库 125 5.3.6 如何挽救 corrupt table 中的数据 126 5.3.7 Recovering the master Database or Master Device under ASE 12.5 128 5.3.8 如何只用数据库设备文件生成新的数据库服务器 136 5.3.9如何单独在备份机上启动Sybase ASE12.5 (ASE HA) 139 5.4 数据库恢复以后的工作 140 5.4.1 如何检查数据库中数据的一致性 140 6. SYBASE培训服务 143 6.1 SYBASE培训概述 143 6.2 SYBASE主要数据库培训班介绍 144 7. 如何获得帮助 145 7.1 热线电话 145 7.2 Sybase技术文档 145 7.3 Sybase网上资源 145 7.4 您的建议 146

81,117

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧