本例中使用ORACLE数据库,表CLASS结构如下:
例子代码如下:
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.ResultSetMetaData;
- import java.sql.SQLException;
- class TestDemo {
- public static Connection getConnection() {
- Connection conn = null;
- try {
- Class.forName("oracle.jdbc.driver.OracleDriver");
- String url = "jdbc:oracle:thin:@192.168.100.251:1521:cstar";
- String user = "ticket";
- String pass = "ticket";
- conn = DriverManager.getConnection(url, user, pass);
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return conn;
- }
- public static void main(String[] args) {
- Connection conn = getConnection();
- String sql = "select * from class";
- PreparedStatement stmt;
- try {
- stmt = conn.prepareStatement(sql);
- ResultSet rs = stmt.executeQuery(sql);
- ResultSetMetaData data = rs.getMetaData();
- while (rs.next()) {
- for (int i = 1; i <= data.getColumnCount(); i++) {
- // 获得所有列的数目及实际列数
- int columnCount = data.getColumnCount();
- // 获得指定列的列名
- String columnName = data.getColumnName(i);
- // 获得指定列的列值
- String columnValue = rs.getString(i);
- // 获得指定列的数据类型
- int columnType = data.getColumnType(i);
- // 获得指定列的数据类型名
- String columnTypeName = data.getColumnTypeName(i);
- // 所在的Catalog名字
- String catalogName = data.getCatalogName(i);
- // 对应数据类型的类
- String columnClassName = data.getColumnClassName(i);
- // 在数据库中类型的最大字符个数
- int columnDisplaySize = data.getColumnDisplaySize(i);
- // 默认的列的标题
- String columnLabel = data.getColumnLabel(i);
- // 获得列的模式
- String schemaName = data.getSchemaName(i);
- // 某列类型的精确度(类型的长度)
- int precision = data.getPrecision(i);
- // 小数点后的位数
- int scale = data.getScale(i);
- // 获取某列对应的表名
- String tableName = data.getTableName(i);
- // 是否自动递增
- boolean isAutoInctement = data.isAutoIncrement(i);
- // 在数据库中是否为货币型
- boolean isCurrency = data.isCurrency(i);
- // 是否为空
- int isNullable = data.isNullable(i);
- // 是否为只读
- boolean isReadOnly = data.isReadOnly(i);
- // 能否出现在where中
- boolean isSearchable = data.isSearchable(i);
- System.out.println(columnCount);
- System.out.println("获得列" + i + "的字段名称:" + columnName);
- System.out.println("获得列" + i + "的字段值:" + columnValue);
- System.out.println("获得列" + i + "的类型,返回SqlType中的编号:"
- + columnType);
- System.out.println("获得列" + i + "的数据类型名:" + columnTypeName);
- System.out.println("获得列" + i + "所在的Catalog名字:"
- + catalogName);
- System.out.println("获得列" + i + "对应数据类型的类:"
- + columnClassName);
- System.out.println("获得列" + i + "在数据库中类型的最大字符个数:"
- + columnDisplaySize);
- System.out.println("获得列" + i + "的默认的列的标题:" + columnLabel);
- System.out.println("获得列" + i + "的模式:" + schemaName);
- System.out
- .println("获得列" + i + "类型的精确度(类型的长度):" + precision);
- System.out.println("获得列" + i + "小数点后的位数:" + scale);
- System.out.println("获得列" + i + "对应的表名:" + tableName);
- System.out.println("获得列" + i + "是否自动递增:" + isAutoInctement);
- System.out.println("获得列" + i + "在数据库中是否为货币型:" + isCurrency);
- System.out.println("获得列" + i + "是否为空:" + isNullable);
- System.out.println("获得列" + i + "是否为只读:" + isReadOnly);
- System.out.println("获得列" + i + "能否出现在where中:"
- + isSearchable);
- }
- }
- } catch (SQLException e) {
- System.out.println("数据库连接失败");
- }
- }
- }
结果例子如下:
3
获得列1的字段名称:CLASS_NO
获得列1的字段值:111
获得列1的类型,返回SqlType中的编号:12
获得列1的数据类型名:VARCHAR2
获得列1所在的Catalog名字:
获得列1对应数据类型的类:java.lang.String
获得列1在数据库中类型的最大字符个数:10
获得列1的默认的列的标题:CLASS_NO
获得列1的模式:
获得列1类型的精确度(类型的长度):10
获得列1小数点后的位数:0
获得列1对应的表名:
获得列1是否自动递增:false
获得列1在数据库中是否为货币型:false
获得列1是否为空:0
获得列1是否为只读:false
获得列1能否出现在where中:true
3
获得列2的字段名称:CLASS_NAME
获得列2的字段值:111
获得列2的类型,返回SqlType中的编号:12
获得列2的数据类型名:VARCHAR2
获得列2所在的Catalog名字:
获得列2对应数据类型的类:java.lang.String
获得列2在数据库中类型的最大字符个数:10
获得列2的默认的列的标题:CLASS_NAME
获得列2的模式:
获得列2类型的精确度(类型的长度):10
获得列2小数点后的位数:0
获得列2对应的表名:
获得列2是否自动递增:false
获得列2在数据库中是否为货币型:false
获得列2是否为空:1
获得列2是否为只读:false
获得列2能否出现在where中:true
3
获得列3的字段名称:TEACHER_NO
获得列3的字段值:11
获得列3的类型,返回SqlType中的编号:12
获得列3的数据类型名:VARCHAR2
获得列3所在的Catalog名字:
获得列3对应数据类型的类:java.lang.String
获得列3在数据库中类型的最大字符个数:10
获得列3的默认的列的标题:TEACHER_NO
获得列3的模式:
获得列3类型的精确度(类型的长度):10
获得列3小数点后的位数:0
获得列3对应的表名:
获得列3是否自动递增:false
获得列3在数据库中是否为货币型:false
获得列3是否为空:1
获得列3是否为只读:false
获得列3能否出现在where中:true
3
获得列1的字段名称:CLASS_NO
获得列1的字段值:222
获得列1的类型,返回SqlType中的编号:12
获得列1的数据类型名:VARCHAR2
获得列1所在的Catalog名字:
获得列1对应数据类型的类:java.lang.String
获得列1在数据库中类型的最大字符个数:10
获得列1的默认的列的标题:CLASS_NO
获得列1的模式:
获得列1类型的精确度(类型的长度):10
获得列1小数点后的位数:0
获得列1对应的表名:
获得列1是否自动递增:false
获得列1在数据库中是否为货币型:false
获得列1是否为空:0
获得列1是否为只读:false
获得列1能否出现在where中:true
3
获得列2的字段名称:CLASS_NAME
获得列2的字段值:222
获得列2的类型,返回SqlType中的编号:12
获得列2的数据类型名:VARCHAR2
获得列2所在的Catalog名字:
获得列2对应数据类型的类:java.lang.String
获得列2在数据库中类型的最大字符个数:10
获得列2的默认的列的标题:CLASS_NAME
获得列2的模式:
获得列2类型的精确度(类型的长度):10
获得列2小数点后的位数:0
获得列2对应的表名:
获得列2是否自动递增:false
获得列2在数据库中是否为货币型:false
获得列2是否为空:1
获得列2是否为只读:false
获得列2能否出现在where中:true
3
获得列3的字段名称:TEACHER_NO
获得列3的字段值:22
获得列3的类型,返回SqlType中的编号:12
获得列3的数据类型名:VARCHAR2
获得列3所在的Catalog名字:
获得列3对应数据类型的类:java.lang.String
获得列3在数据库中类型的最大字符个数:10
获得列3的默认的列的标题:TEACHER_NO
获得列3的模式:
获得列3类型的精确度(类型的长度):10
获得列3小数点后的位数:0
获得列3对应的表名:
获得列3是否自动递增:false
获得列3在数据库中是否为货币型:false
获得列3是否为空:1
获得列3是否为只读:false
获得列3能否出现在where中:true
3
获得列1的字段名称:CLASS_NO
获得列1的字段值:333
获得列1的类型,返回SqlType中的编号:12
获得列1的数据类型名:VARCHAR2
获得列1所在的Catalog名字:
获得列1对应数据类型的类:java.lang.String
获得列1在数据库中类型的最大字符个数:10
获得列1的默认的列的标题:CLASS_NO
获得列1的模式:
获得列1类型的精确度(类型的长度):10
获得列1小数点后的位数:0
获得列1对应的表名:
获得列1是否自动递增:false
获得列1在数据库中是否为货币型:false
获得列1是否为空:0
获得列1是否为只读:false
获得列1能否出现在where中:true
3
获得列2的字段名称:CLASS_NAME
获得列2的字段值:333
获得列2的类型,返回SqlType中的编号:12
获得列2的数据类型名:VARCHAR2
获得列2所在的Catalog名字:
获得列2对应数据类型的类:java.lang.String
获得列2在数据库中类型的最大字符个数:10
获得列2的默认的列的标题:CLASS_NAME
获得列2的模式:
获得列2类型的精确度(类型的长度):10
获得列2小数点后的位数:0
获得列2对应的表名:
获得列2是否自动递增:false
获得列2在数据库中是否为货币型:false
获得列2是否为空:1
获得列2是否为只读:false
获得列2能否出现在where中:true
3
获得列3的字段名称:TEACHER_NO
获得列3的字段值:11
获得列3的类型,返回SqlType中的编号:12
获得列3的数据类型名:VARCHAR2
获得列3所在的Catalog名字:
获得列3对应数据类型的类:java.lang.String
获得列3在数据库中类型的最大字符个数:10
获得列3的默认的列的标题:TEACHER_NO
获得列3的模式:
获得列3类型的精确度(类型的长度):10
获得列3小数点后的位数:0
获得列3对应的表名:
获得列3是否自动递增:false
获得列3在数据库中是否为货币型:false
获得列3是否为空:1
获得列3是否为只读:false
获得列3能否出现在where中:true
相关推荐
5. 第8章和第9章可能涵盖更进阶的主题,如批处理操作、结果集的遍历和管理,以及使用ResultSetMetaData获取元数据信息。 6. 第10章通常会讨论一些高级话题,如数据库连接池的使用,它可以提高性能并优化资源管理,...
在“JDBC编程实例”中,可能会涵盖如何使用JDBC连接MySQL数据库,执行基本的CRUD操作,处理批量操作,以及事务管理和连接池的使用。这些实例有助于巩固理论知识,并为实际项目提供实践指导。 总结,JDBC是Java...
本实例57将深入探讨如何利用ResultSetMetaData对象来获取这些重要信息。 当你通过Statement或PreparedStatement对象执行SQL查询后,会得到一个ResultSet对象,它包含了查询返回的所有行数据。ResultSetMetaData对象...
第五个实例可能涉及到“结果集处理”,包括迭代遍历`ResultSet`,处理多行或多列的数据,以及使用`ResultSetMetaData`获取元数据信息。 第六至第八个案例可能进一步深化,比如“存储过程的调用”、“预编译的SQL...
本实例将深入探讨如何使用Java来调用Oracle数据库中的存储过程。 首先,我们需要了解存储过程的基本概念。存储过程是预编译的SQL语句集合,存储在数据库服务器上,可以视为可重复使用的函数,提高了代码的重用性和...
### Java程序读取Oracle表的字段及类型实例 在Java编程中,经常需要与数据库进行交互,例如查询、更新或删除数据等操作。而在这些操作之前,了解表结构(包括字段名称及其对应的类型)是非常重要的一步。这有助于...
**JDBC实例教程** JDBC(Java Database Connectivity)是Java编程语言中用于访问数据库的标准Java API,它允许Java开发者在程序中执行SQL语句,进行数据的增删查改操作,以及获取数据库元数据和管理事务。本教程将...
根据提供的信息,我们可以总结出以下关于“Java操作MySQL实例”的详细知识点: ### 一、环境配置 #### MySQL数据库版本: - 版本:4.1.11 - 下载地址:[http://dev.mysql.com/downloads/mysql/4.1.html]...
ResultSetMetaData meta = rs.getMetaData(); int columnCount = meta.getColumnCount(); for (int i = 1; i ; i++) { if ("columnName".equals(meta.getColumnName(i))) { // 列存在,执行相应操作 } } ``` 5. ...
在上面的代码中,我们使用ResultSetMetaData来获取数据库字段信息,例如获取字段数量、字段名称等。 四、使用反射机制来映射Boolean类型字段 在Java中,我们可以使用反射机制来映射Boolean类型字段。例如: ```...
然后利用该结果集的`getMetaData()`方法得到一个`ResultSetMetaData`实例,从而进一步获取字段名称等相关信息。 #### 示例代码解析 以下是对给定示例代码的详细解释: 1. **加载驱动程序**: ```java String ...
在ORMlite框架中,当执行SQL查询并获取ResultSet时,可以使用ORMlite提供的工具方法来获取ResultSetMetaData。这个信息对于理解数据库表结构至关重要,比如字段名、字段类型(如整型、字符串、日期等)、字段顺序...
10.5 使用ResultSetMetaData 10.6 小结 第3部分 三层Web站点与JDBC 第11章 构建会员Web站点 11.1 设计一个多层系统 11.2 功能性需求 11.3 设计数据库 11.3.1 处理会员登录 11.3.2 会员注册 11.3.3 数据...
10.5 使用ResultSetMetaData 10.6 小结 第3部分 三层Web站点与JDBC 第11章 构建会员Web站点 11.1 设计一个多层系统 11.2 功能性需求 11.3 设计数据库 11.3.1 处理会员登录 11.3.2 会员注册 11.3.3 数据...
10.5 使用ResultSetMetaData 10.6 小结 第3部分 三层Web站点与JDBC 第11章 构建会员Web站点 11.1 设计一个多层系统 11.2 功能性需求 11.3 设计数据库 11.3.1 处理会员登录 11.3.2 会员注册 11.3.3 数据...
10.5 使用ResultSetMetaData 10.6 小结 第3部分 三层Web站点与JDBC 第11章 构建会员Web站点 11.1 设计一个多层系统 11.2 功能性需求 11.3 设计数据库 11.3.1 处理会员登录 11.3.2 会员注册 11.3.3 数据...
- 使用`ResultSetMetaData`获取列元数据,了解查询结果的结构。 6. **关闭连接**: - 记得在操作完成后关闭`ResultSet`、`Statement`和`Connection`,以释放资源。 7. **Android应用的安全性**: - 由于直接在...