WebLogic下JSP连接数据库

原创 2006年05月29日 09:07:00


WebLogic下JSP连接数据库

 草木瓜 2006-5-26

一、前言

    JSP开发,一般来说需要前端开发工具和后台服务。WebLogic是集成了工具和服务的大型系统。
    需要重视的是,BEA公司的WebLogic最低要求配置内存512M,即使对服务器参数文件做优化,
    仍然不能根本解决问题。
   
二、安装配置WebLogic

    Windows安装没什么好说的。
    安装后,WebLogic自动建了三个服务器(workshop,integration,portal),用户可以选择,不爽的
    也可以自行创建,创建方面的内容《WebLogic Domain 配置方法》一文已有非常详尽的讲述。简单的
    方法是从模板选所择,这里选择 工具->WebLogic Server->配置向导 的basic weblogic workshop
    domain模板。
   
三、新建应用程序,添加Web项目,

    域服务器创建好了,选择 文件->新建->应用程序,选择服务嚣,选择应用程序,完成创建。在所建
    应用程序里添加Web项目。
   
   
四、Web应用

    添加数据库Web应用。在Web项目里,添加Jsp文件和Java Class。本例使用index.jsp,error.jsp,
    clsdb.java,db.properties四个文件。
   
    目录结构如下:
   
    应用程序名/Web项目名/WEB-INF/...
    应用程序名/Web项目名/index.jsp
    应用程序名/Web项目名/error.jsp  
    应用程序名/Web项目名/db.properties  
    应用程序名/Web项目名/javacls/clsdb.java  
   
    index.jsp  起始页面,数据浏览
    --------------------------------------------------
   
    <body>
    <%
           javacls.clsDb db=new javacls.clsDb();
           boolean i;
           i=db.openConnection();
           if(i=true)
           {
               java.sql.ResultSet rs=db.exeQuery("select d from test");
               rs.next(); 
               while(!rs.isAfterLast())
               {    
                out.println(rs.getObject(1));
                rs.next();
                }
            }
               
      %>
      </body>
   
    error.jsp  错误显示页面
    --------------------------------------------------
 
    <p>
      发生错误
      <br>
      错误描述:
      <%=exception.toString()%>
      <br>
      错误原因:
      <%=exception.getMessage()%>
    </p>
   
    clsdb.java 数据库操作类,非常典型的数据库应用方法
    --------------------------------------------------

package javabean;

public class clsDb
{
    java.sql.Connection cn=null;
    java.sql.Statement sqlstm=null;
    java.sql.ResultSet rs=null;
   
    public clsDb()
    {}
   
    //打开数据库连接
    public boolean openConnection()
    {
       
        //读取设置
        java.util.Properties prop=new java.util.Properties();
        try
        {
            java.io.InputStream in=this.getClass().getResourceAsStream("../db.properties");
            prop.load(in);
            if(in!=null)in.close(); 
        }
        catch(java.io.IOException e)
        {
            System.out.println("[OpenCn] 配置文件打开错误! ");
            return false;
        }

        String jdbc=prop.getProperty("drivers");
        String url=prop.getProperty("url");
        String user=prop.getProperty("user");
        String password=prop.getProperty("password");

        //加载JDBC
        try
        {
            Class.forName(jdbc);
        }
        catch(java.lang.ClassNotFoundException e)
        {
            System.out.println("[OpenCn] 装载JDBC驱动出错! ");
            return false;
        }
        //打开数据库连接
        try
        {       
            this.cn=java.sql.DriverManager.getConnection(url,user,password);
        }
        catch(Exception e)
        {
            e.printStackTrace();
            return false;
        }
       return true;
    }
   
    //执行查询
    public java.sql.ResultSet exeQuery(String _sqlstring)
    {
        try
        {
            this.sqlstm=this.cn.createStatement();
            this.rs=this.sqlstm.executeQuery(_sqlstring);
            return this.rs;
        }
        catch(Exception e)
        {
            e.printStackTrace();//此外用于打印错误堆栈
            return null;
        }
    }
   
    //执行更新
    public void exeNonQuery(String _sqlstring) throws java.sql.SQLException
    {
        this.sqlstm=this.cn.createStatement();
        this.sqlstm.executeUpdate(_sqlstring);
        if(this.sqlstm!=null)this.sqlstm.close();
    }
   
    //关闭对象
    public void close() throws java.sql.SQLException
    {
        if(this.rs!=null)this.rs.close();
        if(this.sqlstm!=null)this.sqlstm.close();
        if(this.cn!=null)this.cn.close();
    }
   
    protected void finalize() throws Throwable
    {
        this.close();
    }
   
}

    db.properties    数据库配置文件
    --------------------------------------------------
   
    drivers=oracle.jdbc.driver.OracleDriver
    url=jdbc:oracle:thin:@localhost:1521:wincn
    user=liwei
    password=liwei
   

五、重要补充说明:本篇文章别的都是废话,惟独这段不是!

    本例使用的jdbc驱动是oracle提供的,java只提供驱动的接口,具体必须由各数据库厂商来实现。如果
    环境变量等没有配置正确,找不到包,可以在 应用程序名/Web项目名/库 下添加驱动包。
    drivers=oracle.jdbc.driver.OracleDriver这个包的位置在E:/oracle/ora92/jdbc/lib/classes12.jar
    查看包的信息就知道,写成oracle.jdbc.OracleDriver也是可以的。
   
    url一项内容是数据库的具体对象,前面jdbc:oracle:thin表明是通过jdbc,而且是oracle提供的驱动包,
    thin是oracle的连接方式。下面@后面是主机名或主机地址+端口,最后一项是数据库实例名SID。
   
    注意:
   
    在调试过程中WebLogic会提示找不到类oracle.jdbc.dirver.OracleDriver的文件,这个提示完全是误报,
    是不是bug不得而知!不用理会继续执行!
   
    在连接中文字符集(ZHS16GBK)数据库不会出现乱码,如果连接英文字符集(US7ASCII)则会出现。解决方法
    是作些必要的转换。前提是客户端与服务嚣的字符集要一致。
   
    index.jsp 文件内容更改
   
    while(!rs.isAfterLast())
    {   
     String test=rs.getString(1);
     byte[] tempbyte=test.getBytes("ISO8859-1");  
     String temp=new String(tempbyte,"gb2312"); 
     out.println(temp);
     rs.next();
     }
   
   
    

相关文章推荐

分析weblogic数据库线程池无可用连接的问题

现象描述: 1、web页面访问异常慢,有部分页面如下错误: 2、日志报错: 2017-02-23 16:53:53 53 [filter.CheckMallCpDetailFilter]-[ERR...

WebLogic10中配置数据库连接池

1. 打开wls控制台,输入用户名和密码(默认为weblogic/weblogic) http://localhost:7001/console 2. 正在Domain Structrue...

weblogic配置数据库连接池以及事务处理

如何在Weblogic上把Hibernate配置到JNDI上,其实Hibernate的文档已经做出了解答(http://hibernate.bluemars.net/74.html),只不过给出的代码...

weblogic连接oracle数据库遇到的一个问题

近期,在开发一个系统时,遇到一个问题,描述如下: 测试环境上一个调用存储过程生成分数的功能,始终测试失败,而本地环境上可以正常生成。 团队修改缺陷模式为:测试组提出缺陷,开发人员在本地环境重现,修改...

Weblogic10.3.5 数据库连接问题

近期发现了Weblogic10.3.5 数据库连接问题,首先介绍一个JDBC参数InactiveConnectionTImeout,该参数用于强制回收那些被泄露的连接(长时间不使用的连接、未被程序正确...

weblogic数据库连接池参数配置详解

比较容易混淆的参数解释   1:Inactive Connection Timeout 这个参数很重要,是10以后的版本新加的,9版本没有,一般情况建议不要开启该参数,即使开启也尽可能要把数值设...

Java+weblogic数据库连接泄漏实践版

Java+weblogic数据库连接泄漏实践版
  • wh0426
  • wh0426
  • 2015年03月28日 13:43
  • 899
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WebLogic下JSP连接数据库
举报原因:
原因补充:

(最多只允许输入30个字)