基于达梦数据库进行应用开发

基于达梦数据库进行应用开发

    • 配置ODBC
      • 检查gcc
      • 解压、编译和安装ODBC
      • 查看ODBC版本
      • 验证是否配置成功
    • 达梦JDBC驱动程序Stream的使用
      • 简介
      • 示例程序
        • 采用getBinaryStream获取流
        • 采用getAsciiStream获取流
        • 采用getCharacterStream获取流

配置ODBC

检查gcc

使用命令检查当前系统是否安装gcc,如果没有,那么配置yum源之后,使用yum安装gcc。

rpm -aq | grep gcc

基于达梦数据库进行应用开发_第1张图片

解压、编译和安装ODBC

tar -zxvf unixODBC-2.3.0.tar.gz
cd unixODBC-2.3.0
./configure --enable-gui=no
make
make install

基于达梦数据库进行应用开发_第2张图片
基于达梦数据库进行应用开发_第3张图片
基于达梦数据库进行应用开发_第4张图片

查看ODBC版本

odbc_config --version

基于达梦数据库进行应用开发_第5张图片

odbc_config --odbcini

基于达梦数据库进行应用开发_第6张图片

odbcinst -j

基于达梦数据库进行应用开发_第7张图片

cd /usr/local/etc/
vi odbc.ini

基于达梦数据库进行应用开发_第8张图片

cd /usr/local/etc/
vi odbcinst.ini

基于达梦数据库进行应用开发_第9张图片

验证是否配置成功

isql dm7
//如果连接失败,可以通过添加参数-v,提示具体错误信息
isql dm7 -v

基于达梦数据库进行应用开发_第10张图片

达梦JDBC驱动程序Stream的使用

简介

JDBC(Java Database Connectivity)是Java应用程序与数据库的接口规范,旨在让各数据库开发商为Java程序员提供标准的数据库应用程序编程接口(API)。JDBC定义了一个跨数据库、跨平台的通用SQL数据库API。

DM JDBC驱动程序是DM数据库的JDBC驱动程序,它是一个能够支持基本SQL功能的通用应用程序编程接口,支持一般的SQL数据库访问。

通过JDBC驱动程序,用户可以在应用程序中实现对DM数据库的连接与访问,JDBC驱动程序的主要功能包括:
1、建立与DM数据库的连接;
2、转接发送SQL语句到数据库;
3、处理并返回语句执行结果。

本文将主要介绍使用Stream来处理返回的结果集。为了获取大数据量的列,DM JDBC驱动程序提供了四个获取流的方法:
1、getBinaryStream返回只提供数据库原字节而不进行任何转换的流;
2、getAsciiStream返回提供单字节ASCII字符的流;
3、getUnicodeStream返回提供双字节Unicode字符的流;
4、getCharacterStream返回提供双字节Unicode字符的java.io.Reader流。

示例程序

JDBC规范不推荐使用getUnicodeStream方法,其功能可以用getCharacterStream代替。

采用getBinaryStream获取流

// 查询语句 
String sql = "SELECT description FROM production.product WHERE productid=1"; 
// 创建语句对象 
Statement stmt = conn.createStatement(); 
// 执行查询 
ResultSet rs = stmt.executeQuery(sql); 
// 显示结果集 
while (rs.next()) { 
	try { 
		InputStream stream = rs.getBinaryStream("description"); 
		ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
		int num = -1; 
		while ((num = stream.read()) != -1) { 
			baos.write(num); 
		} 
		System.out.println(baos.toString()); 
	} catch (IOException e) { 
		e.printStackTrace(); 
	} 
} 
// 关闭结果集 
rs.close(); 
// 关闭语句 
stmt.close();

采用getAsciiStream获取流

// 查询语句 
String sql = "SELECT description FROM production.product WHERE productid=1"; 
// 创建语句对象 
Statement stmt = conn.createStatement(); 
// 执行查询 
ResultSet rs = stmt.executeQuery(sql); 
// 显示结果集 
while (rs.next()) { 
	try { 
		InputStream stream = rs.getAsciiStream("description"); 
		StringBuffer desc = new StringBuffer(); 
		byte[] b = new byte[1024]; 
		for (int n; (n = stream.read(b)) != -1;) { 
			desc.append(new String(b, 0, n)); 
		} 
		System.out.println(desc.toString()); 
	} catch (IOException e) { 
		e.printStackTrace(); 
	} 
} 
// 关闭结果集 
rs.close(); 
// 关闭语句 
stmt.close();

采用getCharacterStream获取流

// 查询语句 
String sql = "SELECT description FROM production.product WHERE productid=1"; 
// 创建语句对象 
Statement stmt = conn.createStatement(); 
// 执行查询 
ResultSet rs = stmt.executeQuery(sql); 
// 显示结果集 
while (rs.next()) { 
	try { 
		Reader reader = rs.getCharacterStream("description"); 
		BufferedReader br = new BufferedReader(reader); 
		String thisLine; 
		while ((thisLine = br.readLine()) != null) { 
		System.out.println(thisLine); 
	} 
	} catch (IOException e) { 
		e.printStackTrace(); 
	} 
} 
// 关闭结果集 
rs.close(); 
// 关闭语句 
stmt.close();

你可能感兴趣的:(达梦数据库)