JDBC - 根据 'char' 数据类型配置空格
JDBC - Configure white-spaces from 'char' datatype
如何将 JDBC 配置为自动 trim 来自数据类型定义为 char(20)
的列的空格?
当列具有在 Informix 数据库的 table 中定义的 char(xx) 时,如果不使用,这些保留字符中的每一个都将用空格填充。
例如: 类型为 char(20)
的列名 prefix 最终将是 "test"读作:
"test " <- 4 characters + 16 white-spaces
是否有可以处理这些类型的数据库字段中的空白的配置文件?
在您的连接字符串中使用 IFX_TRIMTRAILINGSPACES:
D:\Infx\work\Java>cat select.java
import java.sql.*;
import java.util.*;
public class select {
public static void main( String [] args ) {
Connection conn = null;
ResultSet dbRes = null;
Statement is = null;
try {
Class.forName("com.informix.jdbc.IfxDriver");
conn = DriverManager.getConnection("jdbc:informix-sqli://420ito:9088/stores7:INFORMIXSERVER=ids1210;user=informix;password=dummy;IFX_TRIMTRAILINGSPACES=0");
is = conn.createStatement();
is.executeUpdate("drop table t22;create table t22(c1 char(20))");
is.executeUpdate("insert into t22 values ('abc ')");
PreparedStatement pstmt=conn.prepareStatement("SELECT * from t22");
dbRes= pstmt.executeQuery();
while (dbRes.next()) {
System.out.format("--%s--,",dbRes.getString(1));
try {
} catch ( Exception ex ) {};
}
dbRes.close();
conn.close();
}
catch ( Exception e ) {
System.err.println(e);
e.printStackTrace();
}
}
}
D:\Infx\work\Java>javac select.java
D:\Infx\work\Java>java select
--abc --,
D:\Infx\work\Java>grep TRIM select.java
conn = DriverManager.getConnection("jdbc:informix-sqli://420ito:9088/stores7:INFORMIXSERVER=ids1210;user=informix;password=dummy;IFX_TRIMTRAILINGSPACES=1");
D:\Infx\work\Java>javac select.java
D:\Infx\work\Java>java select
--abc--,
D:\Infx\work\Java>
来自手册:
https://www.ibm.com/support/knowledgecenter/en/SSGU8G_11.70.0/com.ibm.jdbc_pg.doc/ids_jdbc_040.htm
如何将 JDBC 配置为自动 trim 来自数据类型定义为 char(20)
的列的空格?
当列具有在 Informix 数据库的 table 中定义的 char(xx) 时,如果不使用,这些保留字符中的每一个都将用空格填充。
例如: 类型为 char(20)
的列名 prefix 最终将是 "test"读作:
"test " <- 4 characters + 16 white-spaces
是否有可以处理这些类型的数据库字段中的空白的配置文件?
在您的连接字符串中使用 IFX_TRIMTRAILINGSPACES:
D:\Infx\work\Java>cat select.java
import java.sql.*;
import java.util.*;
public class select {
public static void main( String [] args ) {
Connection conn = null;
ResultSet dbRes = null;
Statement is = null;
try {
Class.forName("com.informix.jdbc.IfxDriver");
conn = DriverManager.getConnection("jdbc:informix-sqli://420ito:9088/stores7:INFORMIXSERVER=ids1210;user=informix;password=dummy;IFX_TRIMTRAILINGSPACES=0");
is = conn.createStatement();
is.executeUpdate("drop table t22;create table t22(c1 char(20))");
is.executeUpdate("insert into t22 values ('abc ')");
PreparedStatement pstmt=conn.prepareStatement("SELECT * from t22");
dbRes= pstmt.executeQuery();
while (dbRes.next()) {
System.out.format("--%s--,",dbRes.getString(1));
try {
} catch ( Exception ex ) {};
}
dbRes.close();
conn.close();
}
catch ( Exception e ) {
System.err.println(e);
e.printStackTrace();
}
}
}
D:\Infx\work\Java>javac select.java
D:\Infx\work\Java>java select
--abc --,
D:\Infx\work\Java>grep TRIM select.java
conn = DriverManager.getConnection("jdbc:informix-sqli://420ito:9088/stores7:INFORMIXSERVER=ids1210;user=informix;password=dummy;IFX_TRIMTRAILINGSPACES=1");
D:\Infx\work\Java>javac select.java
D:\Infx\work\Java>java select
--abc--,
D:\Infx\work\Java>
来自手册:
https://www.ibm.com/support/knowledgecenter/en/SSGU8G_11.70.0/com.ibm.jdbc_pg.doc/ids_jdbc_040.htm