一、建立表,并填充数据:
建表的Oracle SQL如下:
――――――――――――――――――
create table DM_HY
(
  HY_DM VARCHAR2(6) not null,
  HY_MC VARCHAR2(200) not null,
  MLBZ  CHAR(1) not null,
  DLBZ  CHAR(1) not null,
  ZLBZ  CHAR(1) not null,
  XLBZ  CHAR(1) not null,
  FQHY  VARCHAR2(6),
  XYBZ  CHAR(1) not null
);
-- Add comments to the table 
comment on table DM_HY
  is '行业代码表';
-- Add comments to the columns 
comment on column DM_HY.HY_DM
  is '行业代码';
comment on column DM_HY.HY_MC
  is '行业名称';
comment on column DM_HY.MLBZ
  is '门类标志';
comment on column DM_HY.DLBZ
  is '大类标志';
comment on column DM_HY.ZLBZ
  is '中类标志';
comment on column DM_HY.XLBZ
  is '小类标志';
comment on column DM_HY.FQHY
  is '父亲类型';
comment on column DM_HY.XYBZ
  is '选用标志';
插入数据:
insert into DM_HY (HY_DM, HY_MC, MLBZ, DLBZ, ZLBZ, XLBZ, FQHY, XYBZ)
values ('01', '农、林、牧、渔业', 'Y', 'N', 'N', 'N', null, 'Y');
insert into DM_HY (HY_DM, HY_MC, MLBZ, DLBZ, ZLBZ, XLBZ, FQHY, XYBZ)
values ('010200', '林业', 'N', 'Y', 'Y', 'Y', '01', 'Y');
。。。。。。
二、配置数据源
配置方法:根据数据库类型修改apache-tomcat-5.5.20\conf下的context.xml内容为:
1、  Tomcat种的Oracle数据源
―――――――――――――――――――――――――――
<!-- The contents of this file will be loaded for each web application -->
<Context privileged='true'>
              <Resource name="zfvims/zfvimsds"
                      auth="Container"
                   type="javax.sql.DataSource"
                            driverClassName="oracle.jdbc.driver.OracleDriver"
                   url="jdbc:oracle:thin:@192.168.0. 2:1521: orcl"
                   username=" zfvims"
                   password="leizhimin"
                   maxIdle="30"
                   maxWait="10000"
                   maxActive="100"
                   removeAbandoned="true"
                            removeAbandonedTimeout="60"
                            logAbandoned="true"/>
</Context>
―――――――――――――――――――――――――――
2、  Tocmat中的DB2数据源
―――――――――――――――――――――――――――
<!-- The contents of this file will be loaded for each web application -->
<Context privileged='true'>
              <Resource name="zfvims/zfvimsds"
                      auth="Container"
                   type="javax.sql.DataSource"
                            driverClassName="com.ibm.db2.jcc.DB2Driver"
                   url="jdbc:db2: zfvims"
                   username=“zfvims”
                   password=" leizhimin"
                   maxIdle="30"
                   maxWait="10000"
                   maxActive="100"
                   removeAbandoned="true"
                            removeAbandonedTimeout="60"
                            logAbandoned="true"/>
</Context>
―――――――――――――――――――――――――――
3、  Tocmat中的MySQL数据源
―――――――――――――――――――――――――――
<!-- The contents of this file will be loaded for each web application -->
<Context privileged='true'>
              <Resource name="zfvims/zfvimsds"
                      auth="Container"
                   type="javax.sql.DataSource"
                            driverClassName=" com.mysql.jdbc.Driver "
                   url=" jdbc:mysql://192.168.0.2:3306/zfvims"
                   username=“zfvims”
                   password=" leizhimin"
                   maxIdle="30"
                   maxWait="10000"
                   maxActive="100"
                   removeAbandoned="true"
                            removeAbandonedTimeout="60"
                            logAbandoned="true"/>
</Context>
―――――――――――――――――――――――――――
注意:Oracle和DB2 JDBC连接的URL有较大差别,其中Oracle中url="jdbc:oracle:thin:@192.168.3.12:1521:orcl"的orcl表示数据库SID,一个SID下面的可以有多个用户,每个用户对应自己的数据库。DB2中url="jdbc:db2:zfvims"其中的zfvims是数据库的别名;MySQL中的url=" jdbc:mysql://192.168.0.2:3306/zfvims"其中的zfvims却是数据库的实名。
三、写工具类
package com.zfvims.common.utils;
 
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
 
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
 
/**
 * File Name:  PageComboxOptions.java
 * Created by: IntelliJ IDEA.
 * Copyright:  Copyright (c) 2003-2006
 * Author:      leizhimin
 * Modifier:    leizhimin
 * Date Time: 2006-11-29 8:58:42
 * Readme:   jsp页面中的选择控件(Combox)之选项列表获取工具类
 */
public final class PageComboxOptions {
    private static final Log log = LogFactory.getLog(PageComboxOptions.class);
    private static Connection conn;
    private static Statement stmt;
    private static ResultSet rs;
    //行业类别SQL
    private static final String SQL_HYLB = "select '<option value=\"' || t.hy_dm || '\">' || t.hy_dm || '-' || t.hy_mc || '</option>' from dm_hy t order by t.hy_dm";
 
    static {
        try {
            //建立数据库连接
            Context ctx = new InitialContext();
            DataSource ds = (DataSource) ctx.lookup("java:comp/env/zfvims/zfvimsds");
            conn = ds.getConnection();
        } catch (Exception e) {
            log.error("获取数据库链接出现错误,请检查PageComboxOptions.java和连接池的配置!");
            e.printStackTrace();
        }
    }
 
    /**
     * @return 获取行业类别下拉列表HTML串
     */
    public static String getOptionsHYLB() {
        String optionHTML = "";
        try {
            conn.setAutoCommit(false);
            //创建一个JDBC声明
            stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
            //执行查询
            rs = stmt.executeQuery(SQL_HYLB);
            optionHTML = result2String(rs);
            //关闭数据库连结
            rs.close();
            stmt.close();
        } catch (SQLException e) {
            log.error("查询行业类别出错,请检查!");
            e.printStackTrace();
        }
        return optionHTML;
    }
 
    /**
     * @return 结果集的String组合串
     */
    private static String result2String(ResultSet rs) throws SQLException {
        String optionHTML = "";
        while (rs.next()) {
            optionHTML = optionHTML + rs.getString(1);
        }
        return optionHTML;
    }
}
说明:这个工具类会一直占用一个数据库连接,为所有需要展示代码表的页面服务。这比每次当页面有代码表需要展示的时候,调用后台方法获取一次数据库连接然后又返回到池更高效。尤其是当系统很庞大的时候,这种优势尤为明显。当然也可以将静态的获取连接的代码块做成一个静态方法,然后分别在每个方法中获取连接。这样实质上每次取出一个代码表,都要获取一次连接,效率也不高,并且每次都要取连接,关闭连接(归池),本人不推荐这种做法。
四、写测试页面
写一个测试页面,在页面中导入工具类PageComboxOptions,然后直接调用其静态方法获取展示需要的html字符串代码,测试页面代码如下:
testoption.jsp
――――――――――――――――――――――――――――――――
<%@ page import="com.zfvims.common.utils.PageComboxOptions"%>
<%--
  Created by IntelliJ IDEA.
  User: leizhimin
  Date: 2006-11-29
  Time: 11:19:02
--%>
<%@ page contentType="text/html;charset=GBK" language="java" %>
<html>
<head><title>Simple jsp page</title></head>
 
<body>
<form action="#" method="post">
    <table>
        <tr>
            <td>行业类型</td>
            <td >
                <select name="hylb">
                     <%=PageComboxOptions.getOptionsHYLB()%>
                </select>
                     </td>
        </tr>
    </table>
</form>
</body>
</html>
――――――――――――――――――――――――――――――――
本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/10950,如需转载请自行联系原作者

Tomcat5.5链接Oracle、DB2、MySQL数据源实现JSP下拉框的填充相关推荐

  1. php mysql实现下拉列表查询_php mysql如何实现通过下拉框查询显示数据库中的数据...

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  2. HTML多选mysql,html多选下拉框 | 学步园

    一个jquery ui,实现html的多选下拉框,在下拉里面加checkbox,不改变页面的提交特性,只是动态的改变select选中的多选数据. jsp页面例子: pageEncoding=" ...

  3. PLSQL无法连接64位Oracle数据库/Database下拉框为空的解决方法

    PLSQL无法连接64位Oracle数据库/Database下拉框为空的解决方法 参考文章: (1)PLSQL无法连接64位Oracle数据库/Database下拉框为空的解决方法 (2)https: ...

  4. JDBC链接oracle已经mysql的测试

    1.链接oracle package cn.itcast.mybatis.dao; import java.sql.Connection; import java.sql.DriverManager; ...

  5. excel添加列下拉框票价_Excel多行多列数据源下拉菜单-excel设置下拉菜单

    数据有效性是神兽大家喜爱的一个Excel实用性功能 它不仅能够对单元格的输入数据进行条件限制,还可以在单元格中创建下拉列表菜单方便用户选择输入,如下图 它不仅可以通过下拉菜单快速准确的录入数据,还能在 ...

  6. jboss eap mysql_JBOSS EAP 6 系列三 Oracle、Mysql数据源的配置(驱动)—认识模块的使用...

    本文介绍JBOSS EAP 6.2中Oracle数据源的配置方式.结合之前JBOSS EAP 6.2新功能,本文初识JBOSS模块申明式容器这一特性. 模块申明式容器:JBOSS EAP不再有lib的 ...

  7. oracle和mysql的安装_Windows下Oracle的下载与安装

    一.Oracle下载 二.Oracle安装 1.安装准备 Oracle的安装包下载以后是两个压缩包,同时选中两个压缩包右击进行解压 2.解压完成如下图所示 3.双击 setup.exe 文件进行安装, ...

  8. mysql下拉框记忆,Mysql alter语句记忆分析

    首先,我想吐槽下W3Cschool 的alter说明,反正我是没看懂,导致我浪费太多时间去理解alter这个鬼东西,下面是我结合网上实例和自己的理解写出的关于Mysql alter的讲解. 不喜勿喷, ...

  9. easyui分页查询为什么会有下拉框_6个针对MySQL大数据量分页查询优化的锦囊妙计...

    作者:大神养成记转载来源:http://sina.lt/gauW 方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M ...

最新文章

  1. Java 多线程的基本方式
  2. chrome弱网_请你进行一下弱网模拟
  3. 求数组中元素为另外两个元素和的最大元素
  4. 盘点2010年十大出版事件 文著协“宣战”百度文库
  5. 10月31日,面试题小结
  6. Canvas-图片旋转
  7. c#的winform调用外部exe作为子窗体
  8. 3种类型的程序员:“虫族”,“人族”,“神族”(转载)
  9. (转)MyBatis框架的学习(四)——Mapper.xml文件中的输入和输出映射以及动态sql
  10. sql server中除数为零的处理技巧
  11. 基模高斯光束matlab_matlab 计算高斯光束的束腰 - 物理 - 小木虫 - 学术 科研 互动社区...
  12. 商汤科技VS旷视科技VS依图科技(转)
  13. 苹果手机2019年什么时候出新款_[创立24周年]焕新,不换我初心 因强大而简单.智者,驭时而进 - 手机数码电玩维修...
  14. Google Play开发者账号注册
  15. 在自己电脑上用excel重新绘制荧光定量溶解曲线
  16. 海底捞市值蒸发2323亿关店300家,火锅“炼金术”还灵验吗?
  17. Python 终极指南:进阶之路
  18. 文件补丁管理 - patch
  19. c语言expand函数,编撰expand(s1,s2)
  20. google收购列表

热门文章

  1. 制造业中人工智能的应用有哪些?
  2. 开课吧Java课堂:Transient和volatile修饰符如何运用
  3. 十年 IT 老兵告诉你如何快速构建可直接落地、基于开源的低成本架构!
  4. ssl客户端与服务端通信的demo
  5. [Spring-cloud-eureka]使用 gradle, spring boot,Spring cloud Eureka 搭建服务注册中心
  6. 游戏服务器框架 Leaf/go
  7. weblogic 集群配置
  8. 视频分享:挨踢项目求生法则(2)——战略篇
  9. 转:安卓android开源项目(汇总)
  10. windows下mysql备份