返回首页

gbase数据、南大通用产品文档:GBase8a基于Tomcat 使用GBase JDBC

更新日期:2024年09月11日

以下说明适合Tomcat 5.5,
对于新版本GBase JDBC 8.3.81.51 需要使用JDK1.6。

要将GBase JDBC 驱动包gbase*.jar 放入目录$TOMCAT_HOME\common\lib 下来配
置用户的服务器。在定义
Web
应用程序的场景内,通过在
$TOMCAT_HOME\conf\Catalina\localhost 目录下增加声明资源文件,该文件以Web
应用名称为名(例:GBaseapp.xml),配置JNDI DataSource,内容部分如下:


name="jdbc/GBaseDB"
type="javax.sql.DataSource"
password="somepassword"
driverClassName="com.gbase.jdbc.Driver"
maxIdle="2"
maxWait="50"
username="user"
url="jdbc:gbase://localhost:5258/dbname"
maxActive="4"/>

需要在Web 应用的WEB-INF 目录内的web.xml 文件中添加如下内容:


GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1034
DB Connection
jdbc/GBaseDB
javax.sql.DataSource
Container

在程序中访问数据源的代码为:
Context initCtx = new InitialContext();
DataSource ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/GBaseDB");
一般地,
用户应该遵照Tomcat 自带的安装说明,
因为用户在Tomcat 中配置数据源
的方法有时候是不同的,并且,如果在用户的XML 文件里使用了错误的语法,那
么很可能以一个如下的异常结束:
Error: java.sql.SQLException: Cannot load JDBC driver class 'null ' SQL
state: null
说明
关于Tomcat 使用GBase JDBC 实例请查看GBase JDBC 在Tomcat 应用中使用示例小节。

函数说明
last_value 函数与first_value 函数相反,取窗口内排序后,截止到当前行的最后一
个值。
last_value 函数同样支持一个参数,可以输入常量、字段等。
示例
gbase> SELECT *, last_value(totalamount) over (partition by uname order by
dt) as last_value from tt;
+----+------------+-------+-------------+------------+
| id | dt
| uname | totalamount | last_value |
+----+------------+-------+-------------+------------+
|
2 | 2016-06-05 | A
|
148 |
135 |
|
1 | 2016-06-05 | A
|
135 |
135 |
|
4 | 2016-06-02 | B
|
153 |
120 |
|
3 | 2016-06-02 | B
|
120 |
120 |
|
5 | 2016-06-10 | B
|
198 |
198 |
|
8 | 2016-02-05 | C
|
NULL |
NULL |
|
6 | 2016-08-05 | C
|
201 |
201 |
|
9 | 2016-08-06 | C
|
NULL |
NULL |
|
7 | 2016-08-09 | C
|
129 |
129 |
| 14 | 2016-07-02 | D
|
172 |
172 |
| 13 | 2016-09-01 | D
|
165 |
165 |
| 15 | NULL
| D
|
149 |
149 |
| 10 | 2016-06-01 | NULL
|
125 |
125 |
| 11 | 2016-07-02 | NULL
|
131 |
131 |
| 12 | 2016-08-03 | NULL
|
152 |
152 |
+----+------------+-------+-------------+------------+

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
880
gbase> SELECT *, last_value('const') over (partition by uname order by dt)
as last_value from tt;
+----+------------+-------+-------------+------------+
| id | dt
| uname | totalamount | last_value |
+----+------------+-------+-------------+------------+
|
2 | 2016-06-05 | A
|
148 | const
|
|
1 | 2016-06-05 | A
|
135 | const
|
|
4 | 2016-06-02 | B
|
153 | const
|
|
3 | 2016-06-02 | B
|
120 | const
|
|
5 | 2016-06-10 | B
|
198 | const
|
|
8 | 2016-02-05 | C
|
NULL | const
|
|
6 | 2016-08-05 | C
|
201 | const
|
|
9 | 2016-08-06 | C
|
NULL | const
|
|
7 | 2016-08-09 | C
|
129 | const
|
| 14 | 2016-07-02 | D
|
172 | const
|
| 13 | 2016-09-01 | D
|
165 | const
|
| 15 | NULL
| D
|
149 | const
|
| 10 | 2016-06-01 | NULL
|
125 | const
|
| 11 | 2016-07-02 | NULL
|
131 | const
|
| 12 | 2016-08-03 | NULL
|
152 | const
|
+----+------------+-------+-------------+------------+
gbase> SELECT *, last_value(NULL) over (partition by uname order by dt)
as last_value from tt;
+----+------------+-------+-------------+------------+
| id | dt
| uname | totalamount | last_value |
+----+------------+-------+-------------+------------+
|
2 | 2016-06-05 | A
|
148 |
NULL |
|
1 | 2016-06-05 | A
|
135 |
NULL |
|
4 | 2016-06-02 | B
|
153 |
NULL |
|
3 | 2016-06-02 | B
|
120 |
NULL |
|
5 | 2016-06-10 | B
|
198 |
NULL |
|
8 | 2016-02-05 | C
|
NULL |
NULL |
|
6 | 2016-08-05 | C
|
201 |
NULL |
|
9 | 2016-08-06 | C
|
NULL |
NULL |
|
7 | 2016-08-09 | C
|
129 |
NULL |
| 14 | 2016-07-02 | D
|
172 |
NULL |
| 13 | 2016-09-01 | D
|
165 |
NULL |
| 15 | NULL
| D
|
149 |
NULL |
| 10 | 2016-06-01 | NULL
|
125 |
NULL |
| 11 | 2016-07-02 | NULL
|
131 |
NULL |
| 12 | 2016-08-03 | NULL
|
152 |
NULL |
+----+------------+-------+-------------+------------+

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
881

函数说明
返回X 以10 为底的对数。
示例
示例1:返回以10 为底,“2”的对数。
gbase> SELECT LOG10(2) FROM dual;
+-------------------+
| LOG10(2)
|
+-------------------+
| 0.301029995663981 |
+-------------------+
1 row in set
示例2:返回以10 为底,“100”的对数。
gbase> SELECT LOG10(100) FROM dual;
+------------+
| LOG10(100) |
+------------+
|
2 |
+------------+
1 row in set
示例3:返回以10 为底,“-100”的对数。
gbase> SELECT LOG10(-100) FROM dual;
+-------------+
| LOG10(-100) |
+-------------+
|
NULL |
+-------------+
1 row in set

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
760