Java Tutorial/Database/SQL Data Type Java Data Type

Материал из Java эксперт
Перейти к: навигация, поиск

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>