更新日期:2024年09月11日
下列示例展示一个定义 distinct 类型的 SQL 语句:
GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 101 -
CREATE DISTINCT TYPE mymoney AS NUMERIC(10, 2);
CREATE TABLE distinct_tab (mymoney_col mymoney);
下列为映射至基础类型的示例:
String s = "insert into distinct_tab (mymoney_col) values (?)";
System.out.println(s);
pstmt = conn.prepareStatement(s);
...
BigDecimal bigDecObj = new BigDecimal(123.45);
pstmt.setBigDecimal(1, bigDecObj);
System.out.println("setBigDecimal...ok");
pstmt.executeUpdate();
当映射至底层的类型时,
GBase 8s JDBC Driver 在客户机侧执行映射,
因为数据库服务器提
供在底层的类型与 distinct 类型之间隐式的强制转型。
还可将 distinct 类型映射至实现 SQLData 接口的 Java™ 对象。下列示例展示一个定义
distinct 类型的 SQL 语句:
CREATE DISTINCT TYPE mymoney AS NUMERIC(10,2)
下列代码将 distinct 类型映射至名为 MyMoney 的 Java 对象:
import java.sql.*;
import com.gbasedbt.jdbc.*;
public class myMoney implements SQLData
{
private String sql_type = "mymoney";
public java.math.BigDecimal value;
public myMoney() { }
public myMoney(java.math.BigDecimal value)
this.value = value;
public String getSQLTypeName()
{
return sql_type;
{
public void readSQL(SQLInput stream, String type) throws
GBase 8s JDBC Driver 程序员指南
南大通用数据技术股份有限公司
- 102 -
SQLException
{
sql_type = type;
value = stream.readBigDecimal();
{
public void writeSQL(SQLOutput stream) throws SQLException
{
stream.writeBigDecimal(value);
}
// overides Object.equals()
public boolean equals(Object b)
return value.equals(((myMoney)b).value);
}
public String toString()
{
return "value=" + value;
}
}
...
String s - "insert into distinct_tab (mymoney_col) values (?)";
pstmt = conn.prepareStatement(s);
myMoney mymoney = new myMoney();
mymoney.value = new java.math.BigDecimal(123.45);
pstmt.setObject(1, mymoney);
System.out.println("setObject(myMoney)...ok");
pstmt.executeUpdate();
在此情况下,请使用 setObject() 方法,而不是 setBigDecimal() 方法,来插入数据。
[root@CM2 ~]# cd /home/gbasedbt/
[root@CM2 gbasedbt]# su gbasedbt
[gbasedbt@CM2 ~]$ vim profile.cm2
内容如下:
export GBASEDBTDIR=/opt/GBASE/gbase
export GBASEDBTSQLHOSTS=/opt/GBASE/gbase/etc/sqlhosts.cm2
export PATH=/opt/GBASE/gbase/bin:$PATH
export DB_LOCALE=zh_CN.GB18030-2000
export CLIENT_LOCALE=zh_CN.GB18030-2000
export GL_USEGLU=1
为了gbasedbt用户在登录后自动应用这些环境变量,可以修改.bash_profile文件,在文
件后添加如下内容:
source /home/gbasedbt/profile.cm2