Java Tutorial/Database/SQL Data Type Java Data Type — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 08:06, 1 июня 2010
Содержание
- 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
<source lang="java">
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); }
}</source>
Get the database-specific type name
<source lang="java">
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"); } }
}</source>
Get the java.sql.Types type to which this database-specific type is mapped
<source lang="java">
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"); } }
}</source>
Getting the Name of a JDBC Type
<source lang="java">
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); }
}</source>
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
<source lang="java">
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"); } }
}</source>
uses reflection to get all the field names from java.sql.Types.
<source lang="java">
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); }
}</source>