当前位置: 代码迷 >> Java Web开发 >> 老问题jdbc连接oracle
  详细解决方案

老问题jdbc连接oracle

热度:321   发布时间:2010-04-18 10:39:56.0
老问题jdbc连接oracle
代码:
   <%@ page language="java" contentType="text/html; charset=GB2312" pageEncoding="GB2312"%>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
<title>创建数据库</title>
</head>
<body ><font size=2>
    <%   
        //连接需要的对象
        Connection conn = null;
        Statement stmt = null;
        String sql = null;
        ResultSet rs = null;
        int ret;
    try{
   
        Class.forName("oracle.jdbc.Driver.OracleDriver");                    //载入JDBC驱动程序
        String strCon = "jdbc:oracle:thin:@localhost:1521:JamSamples";            //连接字
        conn = DriverManager.getConnection(strCon,"","");    //连接数据库
        stmt = conn.createStatement();                            //初始化查询
        sql = "create database JspSamples";                        //创建数据库
        ret  = stmt.executeUpdate(sql);                        //执行创建数据库
        sql = "use JspSamples";                                //选择数据库
        ret  = stmt.executeUpdate(sql);                        //执行选择数据库
        sql = " CREATE TABLE customers(" +                    //创建表
                " Id int(6) unsigned NOT NULL auto_increment," +
                " Name varchar(20) default NULL," +
                " addTime timestamp NULL default NULL," +
                "  Tel varchar(15) default NULL," +
                "  Email varchar(20) default NULL," +
                "  PRIMARY KEY  (Id)" +
                " )";
        ret  = stmt.executeUpdate(sql);                        //执行创建表
        
    }
    catch(ClassNotFoundException e){                            //意外处理,驱动程序无法找到
        e.printStackTrace();
        out.println("<h1>无法找到数据库驱动</h1>");
    }
    catch(SQLException e1){                                    //意外处理,数据库操作失败
        e1.printStackTrace();
        out.println("<h1>数据库操作失败</h1>");
    }
   
    out.println("<h1>新建数据库JspSamples成功</h1>");
        out.println("<h1>新建数据库JspSamples成功</h1>");
        DatabaseMetaData meta = conn.getMetaData();                //获取数据库信息
        out.println("<br>");
        out.println("连接字:" + meta.getURL());                        //获取连接字
        out.println("<br>");
        out.println("数据库产品:" + meta.getDatabaseProductName());    //获取数据库产品名
        out.println("<br>");
        out.println("数据库版本:" + meta.getDatabaseProductVersion() );    //获取数据库产品版本
        out.println("<br>");
        out.println("驱动程序:" + meta.getDriverName() );                //获取数据库驱动名
        out.println("<br>");
        out.println("驱动程序版本:"  + meta.getDriverVersion() );        //获取数据库驱动版本
        stmt.close();                                        //关闭查询
        conn.close();                                        //关闭连接
    %>
</font>
</body>
</html>
错误:
   Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:460)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)


root cause

java.lang.NullPointerException
    org.apache.jsp.Ex5_005f1_jsp._jspService(Ex5_005f1_jsp.java:94)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.27 logs.

我的问题好久老解决不了,好困惑啊!帮帮我啊!小弟谢了
搜索更多相关主题的帖子: jdbc  oracle  

----------------解决方案--------------------------------------------------------
你页面本身没有错误,可能的错误有几个:
1 没有把oracle的driver放进web-inf/lib下
2 没有创建数据库JamSamples,导致连接不了
String strCon = "jdbc:oracle:thin:@localhost:1521:JamSamples";
这里指定了数据库名称
----------------解决方案--------------------------------------------------------
localhost  改成你设置的Ip试一下
----------------解决方案--------------------------------------------------------
  相关解决方案