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中JDBC连接数据库的几个问题

BEA公司的中间件weblogic工具提供了一套数据库连接的机制,我采用的是weblogic8.1,数据库是Oracle9i客户端,通过weblogic控制台,我配置了JDBC Connection ...
  • flyfine
  • flyfine
  • 2007年06月05日 18:29
  • 2016

weblogic与oracle数据库通过连接池连接及测试代码

  • 2008年09月17日 11:55
  • 7KB
  • 下载

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

Java+weblogic数据库连接泄漏实践版
  • wh0426
  • wh0426
  • 2015年03月28日 13:43
  • 956

WebLogic连接池配置数据库断掉后自动重连设置

转自:http://soft.zdnet.com.cn/software_zone/2007/1004/535407.shtml 进入某个连接池配置页,进入“连接“页,点击高...
  • guchuanlong
  • guchuanlong
  • 2013年10月12日 09:49
  • 2120

记Weblogic采用RAC方式链接数据库遇到的问题

前几天,去客户现场部署系统,WEBLOGIC连接数据库使用RAC方式连接,好几个人弄了一下午愣是没搞定,总是报SID错误 开始一致认为是防火墙的原因,后来SSH登陆应用服务器后,再TELNET数据库...
  • ckao7470
  • ckao7470
  • 2015年02月16日 10:57
  • 1230

java使用JNDI 获取weblogic配置的数据源 连接数据库

1、引入jars 在C:\Program Files1\bea\weblogic92\server\lib下面(我只选择weblogic.jar IDE给我加一堆) 代码中webdev是我配置的数据...
  • dragonpeng2008
  • dragonpeng2008
  • 2016年07月04日 14:54
  • 2827

tomcat部署weblogic服务器项目到本地执行的总结整理

关于tomcat部署weblogic服务器项目到本地执行总结 weblogic服务器的项目都是属于linux系统的,下载下来的项目的源码也都是编译后的class的文件代码,所以不能放在eclipse...
  • fanbingfu
  • fanbingfu
  • 2016年08月25日 14:29
  • 1178

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

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

weblogic连接池设置和监控

1.weblogic的连接池的线程数可以设置初始值和最大值。 如,初始容量:5 最大容量:20 最大的容量,也就是说可以提供多少个连接,就是说数据库这个房子总共有多少个门,那么这个实例里就是有20...
  • nirvana52
  • nirvana52
  • 2016年10月27日 15:50
  • 4523

Weblogic中的热部署——修改JSP、java类无需重启Weblogic

Weblogic允许在wls运行时部署组件的新版本。这个过程被称作热部署。因为java classloader没有任何一种机制来卸下一系列存在的类,也不能用类的新版本来替换老版本,为了在一个运行的虚拟...
  • leiguowuhen1988
  • leiguowuhen1988
  • 2013年07月31日 10:36
  • 2276
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WebLogic下JSP连接数据库
举报原因:
原因补充:

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