请教各位一个问题:本地的ORACLE数据库怎么和JSP相连
我做了几周了都没有解决这个问题
我在JSP里用了下面的代码,并且在ORACLE数据库里已经建好了表TEST
而且在odbc里也配好了
但是就是连不上,请教各位,并且帮忙解决一下
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!--首先导入一些必要的packages-->
<%@ page info="database handler"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<!--告诉编译器使用SQL包-->
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>
<body>
<%
//以try开始
try
{
Connection con;
Statement stmt;
ResultSet rs;
//加载驱动程序,下面的代码为加载JDBD-ODBC驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
//用适当的驱动程序连接到数据库,test"是系统dsn名
String url="jdbc:odbc:test";
//String url="jdbc:oracle:thin:@10.0.13.96:1521:oracle";
//thin:@localhost:1521:orcl";
//建立连接,类似于ASP中的创建数据库联接
con=DriverManager.getConnection(url, "user1", "ww");
//创建一个JDBC声明
stmt = con.createStatement();
//增加新记录
stmt.executeUpdate("INSERT INTO test (a,b) VALUES (1,'2')");
//查询记录
rs = stmt.executeQuery("SELECT a,b from test");
//输出查询结果
out.println("<table border=1 width=400>");
while (rs.next())
{
String col1 = rs.getString(1);
String col2 = rs.getString(2);
//打印所显示的数据
out.println("<tr><td>"+col1+"</td><td>"+col2+"</td></tr>");
}
out.println("</table>");
}
//如果加载时出错,给出相应的错误信息
catch (Exception e) {
e.printStackTrace() ;
}
%>
</body>
</html>
问题点数:100、回复次数:3Top
1 楼glucose(glucose)回复于 2003-09-02 20:40:52 得分 30
一般用thin jdbc,你把错误详细贴出来
不过,你应该在JSP版面上提问Top
2 楼Strawberry79(永远的草莓地!)回复于 2003-09-03 10:13:34 得分 30
你用这个BEAN测一下吧!
/**
* 功能:此类用于操作数据库
*/
import java.sql.*;
import oracle.jdbc.driver.*;
public class clsDB {
//初始化变量
String sDBDriver = "";
String sConnStr = "";
String sHint = "";
String Username="";
String Pwd="";
ResultSet rs = null;
Connection conn = null;
Statement stmt = null;
/*得到状态提示*/
public String getHint()
{
return sHint;
}
/*设置驱动连接串*/
public void setDBDriver(String s)
{
sDBDriver = "" + s;
}
/*获得驱动连接串*/
public String getDBDriver()
{
return sDBDriver;
}
/*获得连接字符串*/
public String getConnStr()
{
return sConnStr;
}
//初始化数据库
public boolean Initialiaztion(String dbDrive,String dbConn,String dbUser,String dbPwd)
throws InstantiationException, IllegalAccessException
{
sDBDriver = dbDrive;
sConnStr = dbConn;
Username = dbUser;
Pwd = dbPwd;
return Initialiaztion();
}
public boolean Initialiaztion()
throws InstantiationException, IllegalAccessException
{
try
{
Class.forName(sDBDriver).newInstance();
sHint = "Initialization sucessfully!";
return true;
}
catch(ClassNotFoundException e){
sHint = "Initialization:"+e.getMessage()+"失败!";
return false;
}
}
//运行SQL段代码获取记录集
public ResultSet ExecuteQuery(String sql)
{
rs = null;
try{
DriverManager.registerDriver(new OracleDriver());
conn = DriverManager.getConnection(sConnStr,Username,Pwd);
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex)
{
sHint = "ExecuteQuery:" + ex.getMessage();
}
return rs;
}
//运行不返回记录集的SQL代码
public boolean ExcuteUpdate(String sql)
{
try{
conn = DriverManager.getConnection(sConnStr);
stmt = conn.createStatement();
stmt.executeUpdate(sql);
return true;
}
catch(SQLException ex)
{
sHint = "ExecuteQuery:" + ex.getMessage();
return false;
}
}
//关闭连接
public boolean closeConn()
{
try
{
if (rs!=null) rs.close();
if (stmt!=null) stmt.close();
if (conn!=null) conn.close();
return true;
}
catch(SQLException ex)
{
sHint = "ExecuteQuery:" + ex.getMessage();
return false;
}
}
}Top
3 楼Strawberry79(永远的草莓地!)回复于 2003-09-03 10:18:00 得分 40
<%@ page language="java" %>
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="clsDB"%>
<jsp:useBean id="commonDBBean" class="clsDB" scope="session"/>
<html>
<head>
<title>测试数据库操作</title>
</head>
<body bgcolor="#FFFFFF">
<%
if ((request.getParameter("DBDriver")==null)||
(request.getParameter("ConnStr")==null)||
(request.getParameter("SQLStr")==null)||
(request.getParameter("Username")==null)||
(request.getParameter("Pwd")==null))
{
%>
<form method=get>
输入数据库驱程:<input type="text" name="DBDriver" size="40" value="oracle.jdbc.driver.OracleDriver"><BR>
输入连接串:<input type="text" name="ConnStr" size="30" value="java:oracle:thin:@10.0.13.96:1521:ocrl"><BR>
用户名:<input type="text" name="Username" value="user1">
密码:<input type="text" name="Pwd" value="ww"><BR>
测试的SQL串:<input type="text" name="SQLStr" size="30" value="SELECT a,b from test"><BR>
<input type=submit value="提交">
</form>
<%
}else{
if(!commonDBBean.Initialiaztion(request.getParameter("DBDriver"),
request.getParameter("ConnStr"),
request.getParameter("Username"),
request.getParameter("Pwd"))){
out.println(commonDBBean.getHint()+"<br>");
out.println(commonDBBean.getConnStr()+"不行呀!<br>");
}else{
ResultSet rs;
rs = commonDBBean.ExecuteQuery(request.getParameter("SQLStr"));
int j= rs.getMetaData().getColumnCount();
out.println(j+"columns!");
%>
<table border=1>
<tr>
<%
for(int i=1;i<=j;++i){
%>
<td><%=rs.getMetaData().getColumnName(i)%></td>
<%
}
%>
</tr>
<%
//Print record content
while (rs.next())
{
out.println("<tr>");
for(int i =1;i<=j;++i)
{
out.println("<td>"+rs.getString(i)+"</td>");
}
out.println("</tr>");
}
%>
</table>
<%
}
}
if(!commonDBBean.closeConn()){
out.println(commonDBBean.getHint()+"<br>");
}
%>
</body>
</html>Top




