Opencms中要注意的地方

以前写几个模块,需要涉及到自定义数据库操作的地方,一般都是在OpenCms默认的数据库里面建立新的数据表来进行操作的.
    [王毅原创,转载注明,http://wangyi878750.blog.sohu.com/83875297.html]
    譬如在留言板或者计数器中,这些内容是没有必要做成自定义结构类型来使用的,那么最好的办法就是写几个简单的bean操作数据库了.这样的话,我就在OpenCms的数据库里面建立几个自己的库表,加上模块所特有的前缀就是了.
    这样有一个很明显的好处,就是不用做任何多余的配置,就可以很方便的使用数据库操作,当然,只能是在OpenCms原有的数据库里面.然后就可以按照我曾经在OpenCms的数据库操作一文中所写的那样来对数据库表操作了.最大的好处就是我在部署一些需要自己建立数据表的模块的时候,只需要经过web登录系统,导入模块,然后就可以直接在OpenCms的后台创建或者删除数据表,进而操作这些数据.
[王毅原创,转载注明,http://wangyi878750.blog.sohu.com/83875297.html]
    虽然上面所说的,能够解决一些比较常用的数据库操作功能,但是未必人人都想把自己模块的数据表放在原来的数据库里面,或者说,可能我的模块操作的本来就是其他的数据库,可能在任何一个地方的任何一个物理机器上,那么就不可能使用这个方法了.那么,我接下来说明另一种方法,可以通过OpenCms的配置,来让你可以在OpenCms系统里面方便的操作外部数据库.
[王毅原创,转载注明,http://wangyi878750.blog.sohu.com/83875297.html]
    首先需要了解一下OpenCms的一个配置文件,就是配置文件夹下的opencms.properties文件.
    在这个文件中主要就涉及三个部分,除了设置安装向导是否可用,以及网卡地址绑定以外,最多的就是和数据库相关的一些设置了.在理解了这些设置之后,就很容易明白外部数据库的配置了.具体操作步骤如下:
[王毅原创,转载注明,http://wangyi878750.blog.sohu.com/83875297.html]
    1,找到"Declaration of database pools"这段配置文字.
      原来的设置为 db.pools=default ,这个地方声明了OpenCms系统可用的数据库连接池,我们要使用外部数据库的连接池,就需要修改这里.修改方法很简单,直接在这个参数后面增加你添加的连接池的名称就可以了,中间使用逗号分隔.譬如可以修改为db.pools=default,test 即可.
    2.找到"Configuration of the default database pool"这段配置文字.
      这段配置指明了连接池所用到的各种属性,譬如数据库驱动类型,数据库的路径,用户名密码等等.
      修改方法也很简单,直接复制一段,然后就将原来键值对中的键名中的"default" 修改为你设置的连接池名称即可.比如我在这里将类似"db.pool.default.user"中的"default"全部修改为"db.pool.test.user"这样.然后把各个属性对应的值设置为适合访问你的外部数据库的需要.
      需要注意的是下面这句,应该把属性值修改,将属性值中的"default"也要修改为你要使用的外部连接池名称.这个很重要.[王毅原创,转载注明,http://wangyi878750.blog.sohu.com/83875297.html]
            # the URL to make the JDBC DriverManager return connections from the DBCP pool
              db.pool.default.poolUrl=opencms:default
    3.找到"Configuration for statement pooling"这一段配置,复制并修改为你需要的连接池的配置.

    经过这三处修改之后,重启web服务器,你就应该可以顺利的在OpenCms里面使用jsp或者javabean来操作数据库了,和其他的框架下的操作没有什么不同.
    4.你可以向我一样建立如下一个简单的jsp页面来测试一下了.

    <%@page import="java.sql.*,
                    org.opencms.db.*,
                    org.opencms.main.*"%>
    <%
        java.sql.Connection con =
        OpenCms.getSqlManager().getConnection("test");

        Statement stmt = con.createStatement();
        ResultSet rs;
        rs = stmt.executeQuery("select id, name from test");

        while (rs.next()) {
          %><%= rs.getInt(1) %> <%= rs.getString(2) %><br><%
        }
        rs.close();
        stmt.close();

        con.close();
    %>

当然了,我的test数据库里面有test数据表了,里面也当然有id和name. 

时间: 2024-10-21 18:45:34

Opencms中要注意的地方的相关文章

如何在OpenCms中管理JSP

OpenCms中所有的文件通常都保存在数据库中,这也就是常说的OpenCms VFS(虚拟文件系统).也就是说在OpenCms工作区中看到的文件结构在RFS(真实文件系统,也就是硬盘上)上并不存在(静态导出操作除外),然而,为了JSP能够正常工作,所有的OpenCms JSP文件都映射到真实文件系统中,也就是在硬盘上可以找到. 为了能够理解这个过程,先让我们看一下标准的JSP文件是怎么被处理的: JSP文件必须存放于Web应用程序的根目录下: JSP文件必须以"*.jsp"结尾(可以w

Photoshop解析图片合成中需要注意的地方

  Photoshop解析图片合成中需要注意的地方         注:更多精彩教程请关注三联photoshop教程栏目,三联PS群:182958314欢迎你的加入 分类: PS合成图片教程

性能测试:自建数据库对比RDS中应当注意的地方(适用于MySQL,SQL SERVER,MongoDB)

性能测试:自建数据库对比RDS中应当注意的地方 背景 常常很多用户对比测试自建数据库和RDS的性能差异,其测试结果往往是RDS不如ECS自建,用户往往怀疑难道我花了那么多的钱买的RDS难道还不如自己在ECS上搭建?   从数据库测试的角度来看,测试首先必须是的公平的进行,其结果才具有说服力.RDS作为一个公共的关系数据库服务,其必须要包括稳定高可用,高安全,然后才是高性能.没有前面的两者,我相信没有多少人愿意去使用即不稳定又不安全的服务.所以RDS在稳定性上必须上主备双节点的,双节点甚至是在不同

link中如果多个地方调用同一个静态函数,会不会相互干扰?

问题描述 link中如果多个地方调用同一个静态函数,会不会相互干扰? link中如果多个地方调用同一个静态函数,会不会相互干扰? 解决方案 如果是单线程的,就没有问题,多线程要考虑同步成员变量 解决方案二: 只要这个静态函数是无状态的,没有内部全局变量公用,就不会干扰 解决方案三: 楼上说的对,如果没有公用的东西,就不会有影响

C#获取程序路径的方法中需要注意的地方

C#获取程序路径的方法中需要注意的地方(版本1) 获取运行程序路径的方法主要有以下7种: System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName他获取的是Module的文件名,如果在VS2008的调试环境中,获取的是 [程序名].vshost.exe的完整文件名. System.Environment.CurrentDirectorySystem.IO.Directory.GetCurrentDirectory()这两

中移动多位地方一把手将调整

京华时报讯(记者古晓宇)昨天记者了解到,在广东移动董事长徐龙被双规后,原浙江移动董事长钟天华已火速赴粤接任其职务.据悉,中国移动近期还可能有多位中高层职务出现调整.本月19日,中国移动集团对外确认,广东移动董事长.总经理徐龙已接受纪委调查.昨天记者了解到,时隔仅一周,原浙江移动董事长总经理.董事长钟天华已奔赴广东,接任广东移动董事长.总经理职务.巧合的是,8年之前,徐龙也是从浙江移动董事长.总经理职务上调任广东移动董事长.总经理的.广东移动在中国移动所有省级公司中拥有特殊地位,其营收和利润贡献一

asp.net中C#委托常用地方

前段时间,做了一个局域网通讯工具的项目,在其中涉及到修改个人资料的模块上,遇到了一个有些意思的问题,就是,当用户在修改资料的窗体修改完个人头像的时候,如何让主窗体也随之更新头像,这里,我想到几种方法,第一,用多线程,第二,C#的Timer定时器,这两种方法,其实都是让程序每隔一定的时间刷新一下用户头像,确定可行,不过,用线程来做,实在有点小题大做,而且也涉及到线程间窗体调用的检查,觉得得不尝失,而定时器--老依靠控件并非明智之举吧.何况我们有更好的办法,对,就是委托. 在学C#时,我们都知道,委

JavaScript使用过程中需要注意的地方和一些基本语法_基础知识

1.Javacsript实现超链接:<a href="javascript ('Hello')>点点</a> 2.JavaScript中函数调用可以在函数声明之前. 3.JavaScript 中不像C#中那样要求所有路径都有返回值,没有返回值时返回undefined 匿名函数: 复制代码 代码如下: var f1=function(i1,i2){return i1+i2}; Alert(f1(10,12)); Alert(function(i1,i2){return i1

邮件推广中容易忽略的地方

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 邮件推广是常用的网络推广方式,其重要性相信大家都明白.但要将此种方法用到极致,需要注意的事项很多,简单归纳如下: 1.邮件推广采取的方式:许可邮件营销与垃圾邮件; 2.邮件地址的搜集:手工采集.软件采集等; 3.邮件发送的方式:手工发送.软件发送.一对一发送.邮件群发; 4.邮件的内容:标题.称呼.正文等;文字内容.图片内容; 5.邮箱的名称