文章阅读
JDiy配置文件详解:定义数据库连接
文章类别: JDiy框架教程  更新日期: 2013-06-21 23:55:47.0  点击次数:7759
  在jdiy.xml文件中,根节点jdiy-config下的第一个节点databases,为数据库连接配置块。JDiy可以同时连接操作多个数据库,即databases可以有多个database子级节点,每个database节点代表一个数据库连接,如下示例代码:
<!-- ..其它代码略.. -->
<databases default="def" showSql="false">
    <database name="def">       
        <type>MySQL</type>
        <host>127.0.0.1</host>
        <port>3306</port>
        <name>jdiy_db</name>
        <uid>root</uid>
        <pwd>123456</pwd>
        <maxPools>32</maxPools>
        <maxed>ERROR</maxed>
    </database>
    <database name="otherone">
        <!-- ..另一个数据库连接配置.. -->
    </database>
    <!-- ..还可以定义更多.. -->
</databases>
<!-- ..其它代码略.. -->

<databases>配置段:
此节点接受如下两个属性:
default:
  其值对应于某个database子节点的name属性值,用于定义JDiy的主数据库(或叫做默认数据库),如果不指定此属性,则系统将databases的第一个子级节点配置当作默认数据库。
  附注:在程序代码中,默认数据库的操作DAO对象,可以直接使用JDiyContext上下文对象的getDao()方法取得(javaSE环境),或者App对象的getDao()方法取得(javaWeb环境);非默认的数据库,则需要通过getDao(String name)方法取得(其中name值对应于database子节点的name属性值)
showSql:
  其取值为false或true,当设置为true时,将在日志输出中打印运行时执行的SQL语句;如果为false,则日志中将不显示SQL语句。在前期开发调试中,可以将其此值设置为true,以便跟踪调试;在项目正式应用环境中,建议将其值设置为false,以减少日志输出。
<database>配置段:
此节点接受一个属性name,用来定义这个数据库连接的名称(由您随便取的名字,注意不是数据库名),不能与其它database节点的name属性值重复。
database拥有多个子级节点,都是不带任何属性的单一元素(见下表):
节点名称节点说明
type指定数据库类型(不区分大小写)。
目前JDiy版支持的主流数据库有:MySQL, MsSQL, PostgreSQL, Oracle, DB2, SQLite
host(选1) 指定数据库的主机地址,例如本机:127.0.0.1
port(选1) 指定数据库的端口号,例如:3306
name(选1) 指定数据库名称,例如: jdiy_db
url(选2) 自定义数据库连接URL,例如:jdbc:mysql://www.jdiy.org:3306/jdiy_db
driver(选2) 自定义数据库驱动程序,例如:com.mysql.jdbc.Driver
uid指定数据库登录用户名,例如:root
pwd指定数据库登录密码,例如:123456
maxPools
指定数据库连接池中保持活动连接的上限值,根据项目需求适当设置,值越大,意味着越占系统内存。
默认值为16; 当设置其值为0时,将禁用连接池.
maxed
其取值为:ERROR(错误模式) 或 WAIT (等待模式)
指示当池中的连接数达到上限时,又有新的连接请求进来时,程序应当如何处理。
设置为ERROR,出现这种情况后将抛出异常;设置为WAIT,则等待,直到有空闲连接后再处理。
提示:如发现系统在某段时间运行非常缓慢,在排除其它程序问题后,您应该考虑是否数据库连接请求过多(远大于maxPools设定值),且恰巧此处设置了WAIT等待模式,导致大量连接请求被阻塞。这种情况的解决办法是增大maxPools值,或尝试设置maxed为ERROR错误模式后再观查。
特别注意:host, port, name这三个元素定义为一个组合;将url, driver这两个元素定义为另一个组合,在同一个database配置段中,这两个组合您只能选择其中一种进行配置。
配置示例:
我们以Oracle数据库为例,假设您有一个ORCL的Oracle数据库服务,Oracle数据库服务器地址为:192.168.0.2, 登录用户名和密码分别为:ROOT, 123456, 数据库连接池中的最大连接数设置为100,
则您在JDiy.xml的databases节点内可以使用如下配置:
<database name="oracle_test">
    <type>oracle</type>
    <driver>oracle.jdbc.driver.OracleDriver</driver>
    <url>jdbc:oracle:thin:@192.168.0.2:1521:ORCL</url>
    <!--注意上面这行,Oracle区分大小写-->
    <uid>ROOT</uid>
    <pwd>123456</pwd>
    <maxPools>100</maxPools>
    <maxed>WAIT</maxed>
</database>
由于有些程序员对数据库的JDBC驱动名称和连接字符串不太熟悉,因此,您还也可以采用像下面这样(指定IP,端口和数据库名)的形式,它与上面的配置方式是等效的:
<database name="oracle_test">
    <type>oracle</type>
    <host>192.168.0.2</host>
    <port>1521</port>
    <name>ORCL</name>
    <uid>ROOT</uid><!--注意Oracle区分大小写-->
    <pwd>123456</pwd>
    <maxPools>100</maxPools>
    <maxed>WAIT</maxed>
</database>
  至此,JDiy的数据库连接配置介绍完毕。
[ 上一篇 JDiy配置文件详解:如何验证配置文件的有效性   下一篇 JDiy配置文件详解:jdiy-propertie后台系统… ]
鄂ICP备18006629号-1 鄂ICP备18006629号-2       鄂公网安备 42050302000160号


技术支持QQ:39886616 QQ群:7759217
联系JDiy作者: ziquee java/javascript WEB编程
E-mail:ziquee@abcbcd.com http://189.cn
*尊姓大名:

*电子邮箱:

*QQ号码:

*留言内容:
提交留言
取消
loading...
注:带"*"的为必填项。请如实填写您的E-mail或QQ号码以便我们能与您取得联系。