返回首页

gbase数据、南大通用产品文档:GBase8aopenjpa 使用

更新日期:2024年09月11日

1. 根据openjpa 版本,获取正确的GBase 字典包。
2. 引入openjpa 包, gbase 数据库字典包和jdbc 驱动。
3. 设置persistence.xml 文件,参考黑色背景设置。

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">









org.apache.openjpa.persistence.PersistenceProviderImpl





com.demo1.Bjcy


com.demo1.BaseEntity





name="openjpa.jdbc.DBDictionary"
value="
org.apache.openjpa.jdbc.sql.GBaseDictionary "/>



name="openjpa.ConnectionDriverName"
value="com.gbase.jdbc.Driver" />



name="openjpa.ConnectionURL"
value="jdbc:gbase://192.168.7.235:5258/openjpatest" />









GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1069










3.
程序验证
package com.test;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import com.demo1.Bjcy;

public class TestJpa {
private static EntityManagerFactory emf;
private static ThreadLocal threadLocal;

public static void main(String[] args) {
emf = Persistence.createEntityManagerFactory("JPAJC1");

threadLocal = new ThreadLocal();
Bjcy entity = new Bjcy();
getEntityManager().persist(entity);
}
public static EntityManager getEntityManager() {
EntityManager manager = threadLocal.get();


if (manager == null || !manager.isOpen()) {
manager = emf.createEntityManager();
threadLocal.set(manager);
}
return manager;
}
}

功能说明
记录数据库的插件信息。
表结构说明
表5- 287 表结构信息说明:

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




name
插件名称
dl
插件动态链接库名称,配合配文件的plugin_dir 使用

可使用本部分中的方法,来将 XML 数据插入至数据库列。
本部分中方法声明中的参数有下列含义:

file 参数是一 XML 文档。可通过 URL(诸
如 http://server/file.xml 或 file:///path/file.xml)或路径名称(诸如 /tmp/file.xml 或
c:\\work\\file.xml)来引用该文档。

handler 参数是您提供的可选类,
包含 SAX 解析器作为它正在解析的文件的回调例
程。如果未指定值,或如果将 handler 设置为 NULL,则驱动程序使用回显成功或
失败的空回调例程(驱动程序以 SQLException 的形式报告失败)。

validating 参数告诉 SAX 解析器 factory 使用验证的解析器,
而不是仅检查形式的
解析器。

GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 96 -
如果未指定 nsa 或 validating,则驱动程序使用 xml4j 未经验证的 XML 解析器。
要更改缺省值,请参阅 指定解析器 factory。

nsa 参数告诉 SAX 解析器 factory,可否使用可处理命名空间的解析器。
下列方法通过使用 SAX 解析文件,并将它转换为一字符串。然后,可使用由这些方法返
回的字符串作为 PreparedStatement.setString() 方法的输入,来将数据插入至数据库列内。
public String XMLtoString(String file, String handler, boolean
validating,boolean nsa) throws SQLException

public String XMLtoString(String file, String handler) throws
SQLException

public String XMLtoString(String file) throws SQLException
下列方法通过使用 SAX 来解析文件,并将它转换为类 InputStream 的对象。然后,可使
用 InputStream 对象作为PreparedStatement.setAsciiStream()、
PreparedStatement.setBinaryStream() 或 PreparedStatement.setObject() 方法的输入,来将数据
插入至数据库列内。
public InputStream XMLtoInputStream(String file, String handler,
boolean validating,boolean nsa) throws SQLException;

public InputStream XMLtoInputStream(String file, String handler)
throws SQLException;

public InputStream XMLtoInputStream(String file) throws
SQLException;
要获取使用这些方法的示例,请参阅 插入数据示例。
如果未指定值,或如果将 handler 设置为 NULL,则驱动程序使用缺省的 GBase 8s 处理器。

重要:
驱动程序截断对列来说过长的输入数据。
例如,如果将 x.xml 文件插入至 char (55) 类型
的类内,而不是 char (255) 类型的列,则驱动程序插入截断的文件,且不报错(然而,驱动程
序抛出 SQLWarn 异常)。当选择截断的行时,解析器抛出 SAXParseException,因为该行包
含无效的 XML。