#YashanDB DataSource对象简介

# DataSource简介

DataSource接口是在JDBC3.0的规范中定义的另外一种获取数据源连接的方法。使用DataSource进行数据库连接可以提高应用程序的可移植性,因为应用程序使用一个逻辑名称建立与数据库的连接,该逻辑名通过使用JNDI (Java Naming and Directory Interface) 命名服务映射到真正的DataSource对象,该DataSource对象表示了一个真正的数据库连接。如果数据源的信息发生变化,只需修改该DataSource对象的属性,而不需要修改应用程序。

DataSource对象是推荐使用的方法,它使得应用程序更容易移植和维护,而且应用程序可以透明地使用连接池和分布事务的功能。

YasDataSource是YashanDB提供的一个实现了标准javax.sql.DataSource接口的JDBC数据源类。它用于创建与YashanDB数据库的连接,并支持通过JNDI进行注册和管理。

该类提供了灵活的配置方式,允许开发者通过设置各种属性来定义数据库连接参数,例如服务器地址、端口号、用户名、密码等。同时,也支持SSL安全认证以及自定义连接属性等功能。

示例:基本使用方法

//初始化YashanDB数据源
YasDataSource ds = new YasDataSource();

//设置数据库服务主机名/IP地址
ds.setServerName("192.168.1.1");

//设置监听端口号,例如1688
ds.setPortNumber(1688);

//设置数据库名称/SID
ds.setDatabaseName("testdb");

//设置登录用户名和密码
ds.setUser("your_username");
ds.setPassword("your_password");

//(可选)设置SSL根证书路径
ds.setSslRootCer("/path/to/root.crt");

//获取数据库连接
onnection conn = ds.getConnection();

//或者指定不同的用户名和密码进行连接
Connection conn = ds.getConnection("another_user", "another_password");

常用配置项说明如下所示:

# 配置项详解

方法 描述
void setServerName(String sn) 设置数据库所在服务器的IP或域名
String getServerName() 获取数据库所在服务器的IP或域名
void setPortNumber(int port) 设置监听端口,默认值由常量定义(通常为54321)
int getPortNumber() 获取监听端口
void setDatabaseName(String dbName) 设置要连接的目标数据库名称
String getDatabaseName() 获取要连接的目标数据库名称
void setUser(String userID) 设置登录数据库使用的用户名
String getUser() 获取登录数据库使用的用户名
void setPassword(String password) 设置登录数据库使用的密码
void setSslRootCer(String sslRootCer) 设置启用SSL通信时所需的CA文件路径
String getSslRootCer() 获取SSL通信时的CA文件路径
void setLoginTimeout(int seconds) 设置建立连接的最大等待秒数
int getLoginTimeout() 获取建立连接的最大等待秒数

完整的代码示例如下:

//YashanDB 数据源示例代码:
package quickstart;

import com.yashandb.jdbc.YasDataSource;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;

public class DataSourceDemo {
    public static void main(String[] args) {
        try {
           YasDataSource ds = new YasDataSource();

           //设置连接参数
           ds.setServerName("192.168.1.1");    // Database server address
           ds.setPortNumber(1688);          // Port number
           ds.setDatabaseName("yasdb");     // Database name
           ds.setUser("sales");             // Username
           ds.setPassword("sales");    // Password

           //获取连接
           Connection conn = ds.getConnection();

           //执行简单查询
           Statement stmt = conn.createStatement();
           ResultSet resultSet = stmt.executeQuery("select 1 from dual");
           while(resultSet.next()) {
        	   System.out.println("YashanDB DataSource Demo");
           }

           //关闭资源
           resultSet.close();
           stmt.close();
           conn.close();
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
pdf-btn 下载文档 copy-btn 复制链接
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流