集算器访问数据库的配置

简介:
集算器支持包括 数据库在内的多种异构数据源。这里,我们通过例子来看一下集算器访问数据库的方法。
  集算器可以连接数据库的jdbc驱动,也可以通过jdbc-odbc桥连接数据库。由于版权的原因,使用集算器的程序员需要自行准备数据库的jdbc或者odbc驱动。Jdbc驱动jar包准备好之后,需要放入集算器IDE安装目录的/common/jdbc中,例如:C:\Program Files (x86)\MicroInsight\common\jdbc目录中。
  集算器集成开发环境的ODBC配置界面如下:
  集算器的集成开发环境提供了多种数据库的jdbc配置提示,包括:SQLserver、 Oracle、DB2、Sybase、Access、mysql、hsql、teradata、postgres等。如果需要连接的数据库不在这个范围内,可以使用other类型来添加。配置界面如下:
  驱动jar包放好,配置完成之后,在IDE中就可以很方便的连接数据库,取出表中的数据:
  上图中A1单元格连接上了一个名为demo的hsql数据库,A2单元使用 sql语句查询了employee表,作为集算器的序表存入了A2单元格这个变量中,arg1是外部传入的参数。A3单元格关闭了数据库连接,A4单元格对外返回查询结果。集算器的集成开发环境右下角红框中可以显示demo数据库的表名、字段名,可以方便程序员书写sql语句。
  和集算器提供的其他函数一样,query函数包含选项和参数。如果写成query@1(“select * from employee”),@1是表示使用了1选项,查看函数说明可知,是仅仅返回sql语句取出的第一条记录。而括号中是参数,上图的括号中是一条sql语句的字符串,没有其他参数,也就是说其他所有的参数都使用了默认值。
   上图中的集算器网格程序可以集成到Java应用中,作为集算器jdbc驱动被Java程序调用,具体方法是:
  1、  准备dfx文件。
  将集算器程序保存成 test.dfx。
  2、  部署集算器jar包。
  将调用集算器程序所必须的jar包放入Java应用的classpath中。如果是 web应用,可以放在WEB-INF/lib目录下。这些jar包都位于集算器IDE的安装目录\esProc\lib下,包括:
  dm.jar                          集算器计算引擎及JDBC驱动包
  poi-3.7-20101029.jar            处理对Excel文件的读写
  log4j_128.jar             处理日志
  icu4j_3_4_5.jar        处理国际化
  dom4j-1.6.1.jar        解析配置文件
  3、  部署数据库驱动jar包。
  将集算器连接数据库所需要的数据库jdbc驱动包也放入Java应用的classpath中。例如:demo数据库的hsql.jar。
  4、  配置dfxConfig.xml、config.xml文件。
  config.xml文件中包含了集算器的基本配置信息,如注册码、寻址路径、主目录、数据源配置等,可以在集算器安装目录的esProc\config路径下找到,其中存储的信息与集算器的选项页面中设定相同。dfxConfig.xml可以在安装目录esProc\classes中找到。这里介绍集算器连接数据库的部分配置,其他配置参见集算器教程。
 1)配置数据源的方式之一:直接配置数据库数据源连接参数。
  config.xml文件:
<DBList>
<!-- 数据源名称,必须与dfx文件中的数据源名称一致 -->
<DBname="demo">
<propertyname="url" value="jdbc:hsqldb:hsql://127.0.0.1/demo"/>
<propertyname="driver" value="org.hsqldb.jdbcDriver"/>
<propertyname="type" value="HSQL"/>
<propertyname="user" value="sa"/>
<propertyname="password" value=""/>
<propertyname="batchSize" value="1000"/>
<!--
是否自动连接。如果设定为true,则可以直接使用db.query()函数来访问数据库;如果为false,则不会自动连接,使用前必须用connect(db)语句连接。
-->
<propertyname="autoConnect" value="true"/>
<property name="useSchema"value="false"/>
<propertyname="addTilde" value="false"/>
</DB>
</DBList>
  2)配置数据源的方式之二:在Java应用中配置连接池和jndi,在dfxConfig.xml文件中指定jndi名称。
  dfxConfig.xml文件:
<jndi-ds-configs>
<!-- jndi前缀 -->
<jndi-prefix>java:comp/env</jndi-prefix>
<!-- 数据源名称,必须与dfx文件中的数据源名称一致 -->
<jndi-ds-config>
<name>demo</name>
<dbType>HSQL</dbType>
<dbCharset>ISO-8859-1</dbCharset>
<clientCharset>ISO-8859-1</clientCharset>
<needTranContent>false</needTranContent>
<needTranSentence>false</needTranSentence>
<!--
是否自动连接。如果设定为true,则可以直接使用db.query()函数来访问数据库;如果为false,则不会自动连接,使用前必须用connect(db)语句连接。
-->
<autoConnect>true</autoConnect>
</jndi-ds-config>
</jndi-ds-configs>
  需要说明的是:
  配置文件的名称必须为config.xml和dfxConfig.xml,不能改变。
  在配置数据库连接信息时,要注意不能循环调用,不能将集算器JDBC本身作为数据源在配置中使用。
  如果两种方式都配置了同名的数据源,就以config.xml中的为准。
  5、  部署dfxConfig.xml、config.xml和test.dfx文件。
  将dfxConfig.xml、config.xml放入Java应用的类路径下(classpath),也可以直接打包到dm.jar中。
  将test.dfx文件放到Java应用的类路径下,也可以放到dfxConfig.xml文件的<paths/>节点指定的绝对路径中。
  6、  在java程序中调用test.dfx。
  如果集算器 JDBC的连接串中使用了...?config=...;即用该.xml文件中的配置,忽略config.xml中的定义;连接串中无config参数时则用默认配置。
  例如:con=DriverManager.getConnection("jdbc:esproc:local://?config=myconfig.xml");则使用myconfig.xml中的定义。
  样例代码如下:
public voidtestDataServer(){
Connection con = null;
com.esproc.jdbc.InternalCStatementst;
com.esproc.jdbc.InternalCStatement st2;
try{
//建立连接
Class.forName("com.esproc.jdbc.InternalDriver");
con=DriverManager.getConnection("jdbc:esproc:local://");
//调用存储过程,其中test是dfx的文件名
st =(com.esproc.jdbc.InternalCStatement)con.prepareCall("calltest(?)");
//设置参数
st.setObject(1,"3");
//下面的语句和上面的调用方法效果相同
st =(com.esproc.jdbc.InternalCStatement)con.prepareCall("calltest(3)");
//执行存储过程
st.execute();
//获取结果集
ResultSet set =st.getResultSet();
}
catch(Exception e){
System.out.println(e);
}
finally{
//关闭连接
if(con!=null) {
try {
con.close();
}
catch(Exception e){
System.out.println(e);
}
}
}
}

最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
|
18天前
|
Prometheus 监控 Cloud Native
如何优化Java中的数据库连接池配置?
如何优化Java中的数据库连接池配置?
|
2月前
|
Oracle 关系型数据库 数据库
实时计算 Flink版产品使用合集之用于实时同步整个数据库时,该如何配置DB2
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
Prometheus 监控 关系型数据库
数据库同步革命:MySQL GTID模式下主从配置的全面解析
数据库同步革命:MySQL GTID模式下主从配置的全面解析
150 0
|
24天前
|
XML Java 关系型数据库
Action:Consider the following: If you want an embedde ,springBoot配置数据库,补全springBoot的xml和mysql配置信息就好了
Action:Consider the following: If you want an embedde ,springBoot配置数据库,补全springBoot的xml和mysql配置信息就好了
|
21天前
|
弹性计算 NoSQL 网络安全
软件开发常见之云数据库Redis连接不上如何解决,修改配置后,需要重启下redis服务,配置才能生效呢,是重启,而不是重载配置,最后导致的问题是点击了的重启,配置修改了之后必须点击重启,而不是修改
软件开发常见之云数据库Redis连接不上如何解决,修改配置后,需要重启下redis服务,配置才能生效呢,是重启,而不是重载配置,最后导致的问题是点击了的重启,配置修改了之后必须点击重启,而不是修改
|
28天前
|
XML 前端开发 JavaScript
视频弹幕设计网站02-----数据库设计与后端配置
视频弹幕设计网站02-----数据库设计与后端配置
|
1月前
|
缓存 Java 数据库
springboot数据库及缓存常用依赖及配置
springboot数据库及缓存常用依赖及配置
53 9
|
1月前
|
关系型数据库 MySQL 数据库
Django与MySQL:配置数据库的详细步骤
Django与MySQL:配置数据库的详细步骤
|
2月前
|
安全 关系型数据库 API
Nuxt3 实战 (七):配置 Supabase 数据库
这篇文章介绍了如何为Nuxt项目集成Supabase数据库。文章首先阐述了选择Supabase作为Nuxt项目的数据库的理由,包括其良好的网络评价、与Nuxt的良好集成以及对用户认证和身份鉴权的支持。接着,文章详细介绍了Supabase的特点,如使用PostgreSQL作为数据库、提供完整的认证系统、支持实时数据同步和提供对象存储服务等。然后,文章指导读者如何在Nuxt项目中安装和配置Supabase,包括设置重定向策略和获取数据库访问密钥。最后,文章强调了在开发环境和生产环境中使用不同密钥的重要性。
Nuxt3 实战 (七):配置 Supabase 数据库
|
24天前
|
存储 关系型数据库 MySQL
如何配置和安装Mysql数据库
如何配置和安装Mysql数据库