- packagejavax.util.guxing;
- importjava.sql.*;
- publicclassDBAccess...{
- publicstaticjava.sql.Connectionconn=null;
- privateStringsqlStr="";
- publicDBAccess()...{
- try...{
- Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
- conn=DriverManager.getConnection("jdbc:odbc:TestDB","admin","");
- }catch(ClassNotFoundExceptionex)...{
- System.out.println(ex.toString());
- }catch(SQLExceptionsqlEx)...{
- System.out.println(sqlEx.toString());
- }
- }
- publicResultSetSearch()...{
- ResultSetrset=null;
- sqlStr="SELECT*FROMSTUDENTINF";
- Statementsmt=null;
- try...{
- smt=conn.createStatement();
- rset=smt.executeQuery(sqlStr);
- }
- catch(SQLExceptionex)...{
- System.out.println("Exception:"+ex.toString());
- }
- returnrset;
- }
- publicvoidgetResultSetMetaData()...{
- ResultSetrs=null;
- try...{
- String[]tp=...{"TABLE"};
- rs=this.Search();
- ResultSetMetaDatarsmd=rs.getMetaData();
- System.out.println("下面这些方法是ResultSetMetaData中方法");
- System.out.println("获得1列所在的Catalog名字:"+rsmd.getCatalogName(1));
- System.out.println("获得1列对应数据类型的类"+rsmd.getColumnClassName(1));
- System.out.println("获得该ResultSet所有列的数目"+rsmd.getColumnCount());
- System.out.println("1列在数据库中类型的最大字符个数"+rsmd.getColumnDisplaySize(1));
- System.out.println("1列的默认的列的标题"+rsmd.getColumnLabel(1));
- System.out.println("1列的模式"+rsmd.GetSchemaName(1));
- System.out.println("1列的类型,返回SqlType中的编号"+rsmd.getColumnType(1));
- System.out.println("1列在数据库中的类型,返回类型全名"+rsmd.getColumnTypeName(1));
- System.out.println("1列类型的精确度(类型的长度):"+rsmd.getPrecision(1));
- System.out.println("1列小数点后的位数"+rsmd.getScale(1));
- System.out.println("1列对应的模式的名称(应该用于Oracle)"+rsmd.getSchemaName(1));
- System.out.println("1列对应的表名"+rsmd.getTableName(1));
- System.out.println("1列是否自动递增"+rsmd.isAutoIncrement(1));
- System.out.println("1列在数据库中是否为货币型"+rsmd.isCurrency(1));
- System.out.println("1列是否为空"+rsmd.isNullable(1));
- System.out.println("1列是否为只读"+rsmd.isReadOnly(1));
- System.out.println("1列能否出现在where中"+rsmd.isSearchable(1));
- }
- catch(SQLExceptionex)...{
- ex.printStackTrace();
- }
- }
- publicstaticvoidmain(Stringargs[])...{
- DBAccessdbAccess=newDBAccess();
- dbAccess.getResultSetMetaData();
- }
- }
- 通过上面例子中的方法能够获得,ResultSet中的表的信息。ResultSetMetaData只是获得表的信息,使用DatabaseMetaData则是用来获得数据库的信息,下面介绍这个类的
- 使用方法。
- ?
- DatabaseMetaData对象提供的是关于数据库的各种信息,这些信息包括:
- 1、???数据库与用户,数据库标识符以及函数与存储过程。
- 2、???数据库限制。
- 3、???数据库支持不支持的功能。
- 4、???架构、编目、表、列和视图等。
- 通过调用DatabaseMetaData的各种方法,程序可以动态的了解一个数据库。由于这个类中的方法非常的多那么就介绍几个常用的方法来给大家参考。
- DatabaseMetaData实例的获取方法是,通过连接来获得的
- Connectionconn=//创建的连接。
- DatabaseMetaDatadbmd=Conn.getMetaData();
- 创建了这个实例,就可以使用他的方法来获取数据库得信息。首先是数据库中用户标识符的信息的获得,主要使用如下的方法:
- getDatabaseProductName()用以获得当前数据库是什么数据库。比如oracle,access等。返回的是字符串。
- getDatabaseProductVersion()获得数据库的版本。返回的字符串。
- getDriverVersion()获得驱动程序的版本。返回字符串。
- supportsResultSetType(ResultSet.resultype)是判定是否支持这种结果集的类型。比如参数如果是Result.TYPE_FORWARD_ONLY,那就是判定是否支持,只能先前移动结果集
- 的指针。返回值为boolean,true表示支持。
- 上面介绍的只是几个常用的方法,这个类中还有很多方法,可以到jdk的帮助文档中去查看类java.sql.DatabaseMetaData。
- 这个类中还有一个比较常用的方法就是获得表的信息。使用的方法是:
- getTables(Stringcatalog,Stringschema,StringtableName,String[]types),
- 这个方法带有四个参数,他们表示的含义如下:
- Stringcatalog——要获得表所在的编目。串“”””意味着没有任何编目,Null表示所有编目。
- Stringschema——要获得表所在的模式。串“”””意味着没有任何模式,Null表示所有模式。该参数可以包含单字符的通配符(“_”),也可以包含多字符的通配符(“%”)。
- StringtableName——指出要返回表名与该参数匹配的那些表,该参数可以包含单字符的通配符(“_”),也可以包含多字符的通配符(“%”)。
- Stringtypes——一个指出返回何种表的数组。可能的数组项是:”TABLE”,”VIEW”,
- ”SYSTEMTABLE”,”GLOBALTEMPORARY”,”LOCALTEMPORARY”,”ALIAS”,
- “SYSNONYM”。
- 通过getTables()方法返回一个表的信息的结果集。这个结果集包括字段有:TABLE_CAT表所在的编目。TABLE_SCHEM表所在的模式,TABLE_NAME表的名称。TABLE_TYPE标的
- 类型。REMARKS一段解释性的备注。通过这些字段可以完成表的信息的获取。
- 还有两个方法一个是获得列getColumns(Stringcatalog,Stringschama,Stringtablename,StringcolumnPattern)一个是获得关键字的方法
- getPrimaryKeys(String?catalog,String?schema,String?table)这两个方法中的参数的含义和上面的介绍的是相同的。凡是pattern的都是可以用通配符匹配的。
- getColums()返回的是结果集,这个结果集包括了列的所有信息,类型,名称,可否为空等。getPrimaryKey()则是返回了某个表的关键字的结果集。
- 通过getTables(),getColumns(),getPrimaryKeys()就可以完成表的反向设计了。主要步骤如下:
- 1、?通过getTables()获得数据库中表的信息。
- 2、?对于每个表使用,getColumns(),getPrimaryKeys()获得相应的列名,类型,限制条件,关键字等。
- 3、?通过1,2获得信息可以生成相应的建表的SQL语句。
- ???通过上述三步完成反向设计表的过程。
- DatabaseMetaData所涉及的常用功能主要是上面这些,如果我有哪些地方理解的有问题,请大家指出,谢谢。
- ?
- 通过上面例子中的方法能够获得,ResultSet中的表的信息。ResultSetMetaData只是获得表的信息,使用DatabaseMetaData则是用来获得数据库的信息,下面介绍这个类的
- 使用方法。
- ?
- DatabaseMetaData对象提供的是关于数据库的各种信息,这些信息包括:
- 1、???数据库与用户,数据库标识符以及函数与存储过程。
- 2、???数据库限制。
- 3、???数据库支持不支持的功能。
- 4、???架构、编目、表、列和视图等。
- 通过调用DatabaseMetaData的各种方法,程序可以动态的了解一个数据库。由于这个类中的方法非常的多那么就介绍几个常用的方法来给大家参考。
- DatabaseMetaData实例的获取方法是,通过连接来获得的
- Connectionconn=//创建的连接。
- DatabaseMetaDatadbmd=Conn.getMetaData();
- 创建了这个实例,就可以使用他的方法来获取数据库得信息。首先是数据库中用户标识符的信息的获得,主要使用如下的方法:
- getDatabaseProductName()用以获得当前数据库是什么数据库。比如oracle,access等。返回的是字符串。
- getDatabaseProductVersion()获得数据库的版本。返回的字符串。
- getDriverVersion()获得驱动程序的版本。返回字符串。
- supportsResultSetType(ResultSet.resultype)是判定是否支持这种结果集的类型。比如参数如果是Result.TYPE_FORWARD_ONLY,那就是判定是否支持,只能先前移动结果集
- 的指针。返回值为boolean,true表示支持。
- 上面介绍的只是几个常用的方法,这个类中还有很多方法,可以到jdk的帮助文档中去查看类java.sql.DatabaseMetaData。
- 这个类中还有一个比较常用的方法就是获得表的信息。使用的方法是:
- getTables(Stringcatalog,Stringschema,StringtableName,String[]types),
- 这个方法带有四个参数,他们表示的含义如下:
- Stringcatalog——要获得表所在的编目。串“”””意味着没有任何编目,Null表示所有编目。
- Stringschema——要获得表所在的模式。串“”””意味着没有任何模式,Null表示所有模式。该参数可以包含单字符的通配符(“_”),也可以包含多字符的通配符(“%”)。
- StringtableName——指出要返回表名与该参数匹配的那些表,该参数可以包含单字符的通配符(“_”),也可以包含多字符的通配符(“%”)。
- Stringtypes——一个指出返回何种表的数组。可能的数组项是:”TABLE”,”VIEW”,
- ”SYSTEMTABLE”,”GLOBALTEMPORARY”,”LOCALTEMPORARY”,”ALIAS”,
- “SYSNONYM”。
- 通过getTables()方法返回一个表的信息的结果集。这个结果集包括字段有:TABLE_CAT表所在的编目。TABLE_SCHEM表所在的模式,TABLE_NAME表的名称。TABLE_TYPE标的
- 类型。REMARKS一段解释性的备注。通过这些字段可以完成表的信息的获取。
- 还有两个方法一个是获得列getColumns(Stringcatalog,Stringschama,Stringtablename,StringcolumnPattern)一个是获得关键字的方法
- getPrimaryKeys(String?catalog,String?schema,String?table)这两个方法中的参数的含义和上面的介绍的是相同的。凡是pattern的都是可以用通配符匹配的。
- getColums()返回的是结果集,这个结果集包括了列的所有信息,类型,名称,可否为空等。getPrimaryKey()则是返回了某个表的关键字的结果集。
- 通过getTables(),getColumns(),getPrimaryKeys()就可以完成表的反向设计了。主要步骤如下:
- 1、?通过getTables()获得数据库中表的信息。
- 2、?对于每个表使用,getColumns(),getPrimaryKeys()获得相应的列名,类型,限制条件,关键字等。
- 3、?通过1,2获得信息可以生成相应的建表的SQL语句。
- ???通过上述三步完成反向设计表的过程。
ResultSetMetaData java jdbc涉及的类
更多阅读
国有企业公司制改造所涉及的若干法律问题 国有企业公司制改革
国有企业公司制改造所涉及的若干法律问题---以国有企业改造为国家与职工个人混合持股的有限责任公司为考察对象徐焕茹(广东惠宏信律师事务所广东 惠州516001)[作者简介]徐焕茹(1964-),男,广东和平县人,民商法博士,一级律师,主要从事民商
七年级下册地理课本中涉及的“世界之最” 七年级地理课本
七年级下册地理涉及许多世界之最,为帮助同学们更好的区分与掌握这些世界之最,现将这些“世界之最”整理如下:1、世界上跨纬度最广的大洲----亚洲,南北跨纬度约90度2、世界上面积最大的的大洲----亚洲,面积约4400万平方千米,约占全球陆地
基本数据类型的封装类 java基本类型的封装类
基本数据类型封装类booleanBooleanbyteByteshortShortintIntegerlongLongcharCharacterfloatFloatdoubleDouble基本数据类型的封装类1.基本类型的封装类(wrapper)用来存储数据,增强功能,使他们能通过“.”操作符完成一些操作。2.所
VBScript中的类 vbscript数据类型
摘录自"VBScript程序员参考手册(第三版)" 略有修改尽管这个功能已经存在了一段时间,但大部分人还是不知道可以在VBScript中定义类。VBScript中的类为VBScript程序员提供了一个强大的工具,尤其是在规模较大的脚本项目中。诚然,VBScript的
递延所得税涉及的问题概述 递延所得税资产
递延所得税问题是注会会计教材中涉及范围最广的一根主线,几乎每个章节中都会涉及到,大家在学习的时候如果注意到就会发现很多共性的东西出来,这里稍作总结和思考。老师在讲课中多次提到资产类型和企业持有意图的问题,在学习中我们也发现