Dorado 5 : 17.1.数据连接配置说明 (RF1)

dorado提供了直接面向数据源的连接配置,目前的连接配置方式支持两种JDBC,JNDI。该数据源的配置在系统中并不是必须的,只是如果在系统中想借助DBDataset做快速开发,就必须首先要在这儿做数据源连接的配置了。

JDBC配置方法:

配置文件的位置如下:
dorado home/datasource.xml,该文件在创建dorado项目的时候会自动生成,默认其中为空。在dorado的studio找到如下图的datasource节点编辑datasource.xml文件, 双击左边的 datasource图标,然后点击 Add(),如下图所示

图表 97 数据源配置
在弹出窗口输入doradosample,然后选择JDBC类型,如图所示,点击"ok"进入下一步。
2.单击按钮添加datasource1.双击选择datasource文件
图表 98 数据源配置向导1
进入到进行"connect properties"页面对数据源连接的详细信息作配置:

图表 99
其中几个基本的属性说明如下:

属性

说明

dialect

方言选择

driver

class驱动

url

数据库服务器的URL信息

user

登陆用户

password

登陆密码

以上几个属性中除了dialect之外都是JDBC编程中常用的属性,这里不再详细说明,请参考相关的JDBC编程资料根据不同的数据库作设定。
Dialect属于JDBC连接配置中dorado提供的特殊属性配置,主要用于指定方言实现,dorado中默认提供的方言有:

数据库

方言实现

Oracle8/9

com.bstek.dorado.data.db.dialect.OracleDialect

Oracle10

com.bstek.dorado.data.db.dialect.Oracle10gDialect

MSSQL7.0/2000/2005

com.bstek.dorado.data.db.dialect.MSSQLDialect

MySQL3/4/5

com.bstek.dorado.data.db.dialect.MySQLDialect

MySQL3

com.bstek.dorado.data.db.dialect.MySQL3Dialect

SyBase

com.bstek.dorado.data.db.dialect.SybaseDialect

DB2 8/9

com.bstek.dorado.data.db.dialect.DB2Dialect

HSQL

com.bstek.dorado.data.db.dialect.HSQLDBDialect

Access

com.bstek.dorado.data.db.dialect.AccessDialect

Informix

com.bstek.dorado.data.db.dialect.InformixDialect

Interbase

com.bstek.dorado.data.db.dialect.InterbaseDialect

Postgre

com.bstek.dorado.data.db.dialect.PostgreDialect

以上方言是目前已经提供的,对于部分数据库或则特殊的版本如果以上所提供的方言都无法支持,也可以利用dorado提供的方言开发文档,根据文档实现自定义的方言并添加到系统中即可。
datasource.xml中除了以上几个配置之外,还有一些数据连接池的配置参数,说明如下(详细含义参考Apache的DBCP):

属性

说明

name

数据源别名,项目中默认以此名称访问数据库

type

数据源类型(JDBC/JNDI), ,如果为JNDI,则以下的其它属性定义就无效,由配置JNDI的应用容器决定

minEvictableIdleTimeMillis

 

timeBetweenEvictionRunsMillis

 

minIdle

最小空闲连接,0表示该设置不生效

maxIdle

最大空闲连接,0表示该设置不生效

maxActive

最大连接数量,0表示该设置不生效

loginTimeout

超时时间(以秒数为单位), 0表示该设置不生效

maxWait

超时等待时间以毫秒为单位 6000毫秒/1000等于60秒, 0表示该设置不生效

minEvictableIdleTimeMillis

最小空闲时间,此设置用于连接池管理器清除连接时使用,如果已有连接的空闲时间大于这个设置将会自动被清理,0表示该设置不生效

timeBetweenEvictionRunsMillis

连接池管理器清理间隔时间,0表示该设置不生效

JNDI配置办法(TOMCAT5.0为例)

Tomcat5修改

tomcat 5.x以后将web application的从server.xml里分离了出来,放在了%TOMCAT_HOME%\conf\Catalina\localhost下,如发布的应用为doradosample,那么在这个目录下就会有一个相应的doradosample.xml与之对应,如:

<?xml version='1.0' encoding='utf-8'?>
<Context docBase="D:\Tomcat 5.0\webapps\doradosample"
path="/doradosample" workDir="work\Catalina\localhost\doradosample">
</Context>

在这里为此应用配置DBCP,加入下面关于DBCP的申明代码:

<Resource auth="Container" name="jdbc/doradosample" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/doradosample">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/doradosample?autoReconnect=true&useUnicode=true&characterEncoding=GB2312</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
<parameter>
<name>username</name>
<value>root</value>
</parameter>
</ResourceParams>

Web.xml文件修改

在%TOMCAT_HOME%\webapps下找到已经发布的web应用,本例为doradosample/web-inf/web.xml文件,并在此文件中的doradoservlet申明代码之前添加如下代码:

<ResourceLink name="jdbc/doradosample" global="jdbc/doradosample" type="javax.sql.DataSourcer"/>

Datasource.xml文件修改

之后在datasource.xml文件中只要按照如下的格式设定数据源即可:

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<datasource name="doradosample" type="JNDI">
<jndiName>java:comp/env/jdbc/doradosample</jndiName>
<minIdle>0</minIdle>
<maxIdle>0</maxIdle>
<maxActive>0</maxActive>
<loginTimeout>0</loginTimeout>
<maxWait>0</maxWait>
<minEvictableIdleTimeMillis>0</minEvictableIdleTimeMillis>
<timeBetweenEvictionRunsMillis>0</timeBetweenEvictionRunsMillis>
</datasource>
</datasources>

测试代码

附加JNDI测试代码模板:

<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<%
try{
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) ctx.lookup("jdbc/doradosample");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
String strSql = " select * from employee";
ResultSet rs = stmt.executeQuery(strSql);
while(rs.next()){
out.println(rs.getString(1));
}
}
catch(Exception ex){
ex.printStackTrace();
}
%>

MSSQL2000配置注意事项

使用SQLServer2000实现开发时,需要作如下配置
安装MSSQL2000的SP3补丁;
URL配置中注意添加SelectMethod参数配置,范例如下:

jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Contract?SelectMethod=cursor