Java Tutorial/Database/SQL Data Type Java Data Type
Содержание
- 1 converting a java.sql.Types integer value into a printable name
- 2 Get the database-specific type name
- 3 Get the java.sql.Types type to which this database-specific type is mapped
- 4 Getting the Name of a JDBC Type
- 5 Java Object Types Mapped to JDBC Types
- 6 Java Types Mapped to JDBC Types
- 7 JDBC Types Mapped to Java Object Types
- 8 Mapping Between Java to JDBC SQL Types
- 9 Retrieve type info from the result set
- 10 uses reflection to get all the field names from java.sql.Types.
converting a java.sql.Types integer value into a printable name
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] argv) throws Exception {
String driverName = "com.jnetdirect.jsql.JSQLDriver";
Class.forName(driverName);
String serverName = "127.0.0.1";
String portNumber = "1433";
String mydatabase = serverName + ":" + portNumber;
String url = "jdbc:JSQLConnect://" + mydatabase;
String username = "username";
String password = "password";
Connection connection = DriverManager.getConnection(url, username, password);
DatabaseMetaData dbmd = connection.getMetaData();
ResultSet resultSet = dbmd.getTypeInfo();
while (resultSet.next()) {
String typeName = resultSet.getString("TYPE_NAME");
short dataType = resultSet.getShort("DATA_TYPE");
getJdbcTypeName(dataType);
}
}
public static void getJdbcTypeName(int jdbcType) {
Map map = new HashMap();
// Get all field in java.sql.Types
Field[] fields = java.sql.Types.class.getFields();
for (int i = 0; i < fields.length; i++) {
try {
String name = fields[i].getName();
Integer value = (Integer) fields[i].get(null);
map.put(value, name);
} catch (IllegalAccessException e) {
}
}
System.out.println(map);
}
}
Get the database-specific type name
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
public class Main {
public static void main(String[] argv) throws Exception {
String driverName = "com.jnetdirect.jsql.JSQLDriver";
Class.forName(driverName);
String serverName = "127.0.0.1";
String portNumber = "1433";
String mydatabase = serverName + ":" + portNumber;
String url = "jdbc:JSQLConnect://" + mydatabase;
String username = "username";
String password = "password";
Connection connection = DriverManager.getConnection(url, username, password);
DatabaseMetaData dbmd = connection.getMetaData();
ResultSet resultSet = dbmd.getTypeInfo();
while (resultSet.next()) {
// Get the database-specific type name
String typeName = resultSet.getString("TYPE_NAME");
short dataType = resultSet.getShort("DATA_TYPE");
}
}
}
Get the java.sql.Types type to which this database-specific type is mapped
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
public class Main {
public static void main(String[] argv) throws Exception {
String driverName = "com.jnetdirect.jsql.JSQLDriver";
Class.forName(driverName);
String serverName = "127.0.0.1";
String portNumber = "1433";
String mydatabase = serverName + ":" + portNumber;
String url = "jdbc:JSQLConnect://" + mydatabase;
String username = "username";
String password = "password";
Connection connection = DriverManager.getConnection(url, username, password);
DatabaseMetaData dbmd = connection.getMetaData();
ResultSet resultSet = dbmd.getTypeInfo();
while (resultSet.next()) {
String typeName = resultSet.getString("TYPE_NAME");
short dataType = resultSet.getShort("DATA_TYPE");
}
}
}
Getting the Name of a JDBC Type
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] argv) throws Exception {
String driverName = "com.jnetdirect.jsql.JSQLDriver";
Class.forName(driverName);
String serverName = "127.0.0.1";
String portNumber = "1433";
String mydatabase = serverName + ":" + portNumber;
String url = "jdbc:JSQLConnect://" + mydatabase;
String username = "username";
String password = "password";
Connection connection = DriverManager.getConnection(url, username, password);
DatabaseMetaData dbmd = connection.getMetaData();
ResultSet resultSet = dbmd.getTypeInfo();
while (resultSet.next()) {
String typeName = resultSet.getString("TYPE_NAME");
short dataType = resultSet.getShort("DATA_TYPE");
getJdbcTypeName(dataType);
}
}
public static void getJdbcTypeName(int jdbcType) {
Map map = new HashMap();
// Get all field in java.sql.Types
Field[] fields = java.sql.Types.class.getFields();
for (int i = 0; i < fields.length; i++) {
try {
String name = fields[i].getName();
Integer value = (Integer) fields[i].get(null);
map.put(value, name);
} catch (IllegalAccessException e) {
}
}
System.out.println(map);
}
}
Java Object Types Mapped to JDBC Types
Java Object TypeJDBC Typejava.lang.StringCHAR, VARCHAR, or LONGVARCHARjava.math.BigDecimalNUMERICjava.lang.BooleanBITjava.lang.IntegerINTEGERjava.lang.LongBIGINTjava.lang.FloatREALjava.lang.DoubleDOUBLEbyte[]BINARY, VARBINARY, or LONGVARBINARYjava.sql.DateDATEjava.sql.TimeTIMEjava.sql.TimestampTIMESTAMPjava.sql.ClobCLOBjava.sql.BlobBLOBjava.sql.ArrayARRAYjava.sql.StructSTRUCTjava.sql.RefREFJava classJAVA_OBJECT
Java Types Mapped to JDBC Types
Java TypeJDBC Typejava.lang.StringCHAR, VARCHAR, or LONGVARCHARjava.math.BigDecimalNUMERICbooleanBITbyteTINYINTshortSMALLINTintINTEGERlongBIGINTfloatREALdoubleDOUBLEbyte[]BINARY, VARBINARY or LONGVARBINARYjava.sql.DateDATEjava.sql.TimeTIMEjava.sql.TimestampTIMESTAMPjava.sql.ClobCLOBjava.sql.BlobBLOBjava.sql.ArrayARRAYjava.sql.StructSTRUCTjava.sql.RefREFJava classJAVA_OBJECT
JDBC Types Mapped to Java Object Types
JDBC TypeJava Object TypeCHARjava.lang.StringVARCHARjava.lang.StringLONGVARCHARjava.lang.StringNUMERICjava.math.BigDecimalDECIMALjava.math.BigDecimalBITjava.lang.BooleanTINYINTjava.lang.IntegerSMALLINTjava.lang.IntegerINTEGERjava.lang.IntegerBIGINTjava.lang.LongREALjava.lang.FloatFLOATjava.lang.DoubleDOUBLEjava.lang.DoubleBINARYbyte[]VARBINARYbyte[]LONGVARBINARYbyte[]DATEjava.sql.DateTIMEjava.sql.TimeTIMESTAMPjava.sql.TimestampDISTINCTObject type of underlying typeCLOBjava.lang.ClobBLOBjava.lang.BlobARRAYjava.lang.ArraySTRUCTjava.lang.Struct or java.lang.SQLDataREFjava.lang.RefJAVA_OBJECTUnderlying Java class
Mapping Between Java to JDBC SQL Types
JDBC TypeJava TypeCHARjava.lang.StringVARCHARjava.lang.StringLONGVARCHARjava.lang.StringNUMERICjava.math.BigDecimalDECIMALjava.math.BigDecimalBITbooleanTINYINTbyteSMALLINTshortINTEGERintBIGINTlongREALfloatFLOATdoubleDOUBLEdoubleBINARYbyte[]VARBINARYbyte[]LONGVARBINARYbyte[]DATEjava.sql.DateTIMEjava.sql.TimeTIMESTAMPjava.sql.TimestampCLOBjava.sql.ClobBLOBjava.sql.BlobARRAYjava.sql.ArrayDISTINCTMapping of underlying typeSTRUCTjava.sql.StructREFjava.sql.RefJAVA_OBJECTUnderlying Java class
Retrieve type info from the result set
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
public class Main {
public static void main(String[] argv) throws Exception {
String driverName = "com.jnetdirect.jsql.JSQLDriver";
Class.forName(driverName);
String serverName = "127.0.0.1";
String portNumber = "1433";
String mydatabase = serverName + ":" + portNumber;
String url = "jdbc:JSQLConnect://" + mydatabase;
String username = "username";
String password = "password";
Connection connection = DriverManager.getConnection(url, username, password);
DatabaseMetaData dbmd = connection.getMetaData();
ResultSet resultSet = dbmd.getTypeInfo();
while (resultSet.next()) {
String typeName = resultSet.getString("TYPE_NAME");
short dataType = resultSet.getShort("DATA_TYPE");
}
}
}
uses reflection to get all the field names from java.sql.Types.
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] argv) throws Exception {
String driverName = "com.jnetdirect.jsql.JSQLDriver";
Class.forName(driverName);
String serverName = "127.0.0.1";
String portNumber = "1433";
String mydatabase = serverName + ":" + portNumber;
String url = "jdbc:JSQLConnect://" + mydatabase;
String username = "username";
String password = "password";
Connection connection = DriverManager.getConnection(url, username, password);
DatabaseMetaData dbmd = connection.getMetaData();
ResultSet resultSet = dbmd.getTypeInfo();
while (resultSet.next()) {
// Get the database-specific type name
String typeName = resultSet.getString("TYPE_NAME");
// Get the java.sql.Types type to which this database-specific type is
// mapped
short dataType = resultSet.getShort("DATA_TYPE");
getJdbcTypeName(dataType);
}
}
public static void getJdbcTypeName(int jdbcType) {
Map map = new HashMap();
// Get all field in java.sql.Types
Field[] fields = java.sql.Types.class.getFields();
for (int i = 0; i < fields.length; i++) {
try {
String name = fields[i].getName();
Integer value = (Integer) fields[i].get(null);
map.put(value, name);
} catch (IllegalAccessException e) {
}
}
System.out.println(map);
}
}