GBase 8s数据库连接 - Druid连接池

通过Druid连接到GBase 8s数据库
必需组件:

tomcat 7

数据库连接工具:

GBase 8s JDBC dbtjdbc_2.0.1a2_1.jar

开发环境:

Eclipse

配置前提

1,GBase 8s 数据库服务器已经正常启动

1, 在eclipse环境中 新建 动态Web项目,使用Tomcat 7

01.png

2, 将gbase 8s的jdbc jar包dbtjdbc_2.0.1a2_1.jar复制到tomcat的lib目录下,druid-1.1.11.jar也复制到tomcat的lib目录下(也可以放在WebContent/WEB-INF/lib目录下)

02.png

3, 在WebContent/META-INF目录下,创建编写context.xml配置文件

具体内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource name="jdbc/gbase01_druid"
        auth="Container"
        type="javax.sql.DataSource"
        factory="com.alibaba.druid.pool.DruidDataSourceFactory"
        driverClassName="com.gbasedbt.jdbc.Driver"
        username="gbasedbt"
        password="GBase123"
        validationQuery="select 1 from dual"
        validationQueryTimeout="60"
        testWhileIdle="true"
        initialSize="5"
        maxActive="10"
    />
</Context>

关于更多的druid的资源配置,参考:https://github.com/alibaba/druid/wiki/DruidDataSource配置属性列表

4, 在WebContent/WEB-INF目录下,修改web.xml配置文件,增加以下内容

1
2
3
4
5
6
<resource-ref>
  <description>DRUID DB Connection</description>
  <res-ref-name>jdbc/gbase01_druid</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>

5, 在Java Resources/src目录下,创建Druid.java类,用于数据库连接。

具体内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.gbasedbt.db;
 
import java.sql.Connection;
import java.sql.SQLException;
 
import javax.naming.InitialContext;
import javax.naming.NamingException;
 
import com.alibaba.druid.pool.DruidDataSource;
 
public class Druid {
     
    public static Connection getConn() throws NamingException, SQLException {
        Connection connection = null;
        InitialContext context = new InitialContext();
        DruidDataSource dataSource = (DruidDataSource)context.lookup("java:/comp/env/jdbc/gbase01_druid");
        connection = dataSource.getConnection();
        return connection;       
    }
 
}

6, 在WebContent目录下,创建编写testDruid.jsp动态网页文件

内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@page import="com.gbasedbt.db.Druid"%>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<html>
<head>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>druid 连接到GBase 8s数据库</title>
</head>
<body>
<p>druid 连接到GBase 8s数据库</p>
<%
    Connection connection = null;
    Statement statement = null;
    ResultSet resultSet = null;
    try{
        connection = Druid.getConn();
        statement = connection.createStatement();
        resultSet  = statement.executeQuery("select first 10 tabname from systables");
        while(resultSet.next()){
            out.println("表名:  " + resultSet.getString(1) + "<br>");
        }
         
    } catch (SQLException e){
        e.printStackTrace();
    } finally {
        if(resultSet != null){
            try{
                resultSet.close();
            } catch (Exception e){}
        }
        if(statement != null){
            try{
                statement.close();
            } catch (Exception e){}
        }
        if(connection != null){
            try{
                connection.close();
            } catch (Exception e){}
        }       
    }
%>
</body>
</html>

完成配置,测试数据库连接池的连接。
03.png

标签: gbase8s, druid, druid连接池

已有 5 条评论

  1. 王宁宁 王宁宁
    springboot + hikariCP 接入gbase8s 驱动接入失败,使用的驱动gbasedbtjdbc_3.5.1_3X2_1.jar,报错:Cannot load driver class: com.gbasedbt.jdbc.Driver
    1. 读取不驱动。
      直接使用mvn中央仓库的驱动吧
      https://mvnrepository.com/artifact/com.gbasedbt/jdbc/3.5.1.32
    2. 王宁宁 王宁宁
      引入方式:
      com.gbasedbt.jdbc gbasejdbc 1.0 system ${project.basedir}/src/main/resources/lib/gbasedbtjdbc_3.5.1_3X2_1.jar 之前试过其他国产化的数据库这个方式是可以的
  2. 孙宁宁 孙宁宁
    Druid 的wall 功能先在还不支持gbase 现在有没有解决方案呢?谢谢
    1. 暂时还不支持,涉及到开源项目Druid及GBase 8s的研发沟通问题。待以后再看。

添加新评论