Java基础系列15:JDBC中使用元数据分析数据库

简介:

(1)DatabaseMetaData:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package  javase.jdbc;
 
import  java.sql.Connection;
import  java.sql.DatabaseMetaData;
import  java.sql.ResultSet;
import  java.sql.SQLException;
 
public  class  DatabaseMetaDataDemo {
 
     public  static  void  main(String[] args) {
         Connection connection = JDBCConnection.getConnection();
 
         try  {
             DatabaseMetaData dMetaData = connection.getMetaData();  // 实例化元数据
 
             System.out.println( "数据库名:"  + dMetaData.getDatabaseProductName());
             System.out.println( "数据库版本: "
                     + dMetaData.getDatabaseProductVersion());
 
             ResultSet resultSet = dMetaData.getPrimaryKeys( null null "users" );
             while  (resultSet.next()) {
                 System.out.println( "表类别:"  + resultSet.getString( 1 ));
                 System.out.println( "表模式:"  + resultSet.getString( 2 ));
                 System.out.println( "表名称:"  + resultSet.getString( 3 ));
                 System.out.println( "列名称:"  + resultSet.getString( 4 ));
                 System.out.println( "主键:"  + resultSet.getString( 5 ));
                 System.out.println( "主键名称:"  + resultSet.getString( 6 ));
             }
 
         catch  (SQLException e) {
             e.printStackTrace();
         }
 
     }
 
}

输出:

1
2
3
4
5
6
7
8
数据库名:MySQL
数据库版本: 5.5.19
表类别:jdbcdemo
表模式:null
表名称:users
列名称:id
主键:1
主键名称:PRIMARY

(2)ResultSetMetaData:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package  javase.jdbc;
 
import  java.sql.Connection;
import  java.sql.PreparedStatement;
import  java.sql.ResultSetMetaData;
import  java.sql.SQLException;
 
public  class  ResultSetMetaDataDemo {
 
     public  static  void  main(String[] args) {
         String sql =  "SELECT id,username,password,classId FROM users" ;
         Connection connection = JDBCConnection.getConnection();
 
         try  {
             PreparedStatement pStatement = connection.prepareStatement(sql);
             ResultSetMetaData rSetMetaData = pStatement.getMetaData();
 
             System.out.println( "返回数据有"  + rSetMetaData.getColumnCount() +  "个字段" );
             if  (rSetMetaData.isAutoIncrement( 1 ))
                 System.out.println(rSetMetaData.getColumnName( 1 ) +  "字段是自增的" );
         catch  (SQLException e) {
             e.printStackTrace();
         }
 
     }
 
}

输出:

1
2
返回数据有4个字段
id字段是自增的



本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1767351,如需转载请自行联系原作者
相关文章
|
25天前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
84 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
27天前
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
87 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
21天前
|
存储 缓存 Java
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
74 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
|
2月前
|
SQL Java 关系型数据库
使用 JDBC 实现 Java 数据库操作
JDBC(Java Database Connectivity)是 Java 提供的数据库访问技术,允许通过 SQL 语句与数据库交互。本文详细介绍了 JDBC 的使用方法,包括环境准备、编程步骤和完整示例。
159 7
|
2月前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
128 6
|
2月前
|
SQL Java 数据库连接
【潜意识Java】Java中JDBC过时方法的替代方案以及JDBC为什么过时详细分析
本文介绍了JDBC中一些常见过时方法及其替代方案。
48 5
|
5月前
|
Java 关系型数据库 MySQL
mysql5.7 jdbc驱动
遵循上述步骤,即可在Java项目中高效地集成MySQL 5.7 JDBC驱动,实现数据库的访问与管理。
939 1
|
5月前
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
174 0
|
5月前
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
74 0
|
5月前
|
SQL 分布式计算 关系型数据库
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-22 Sqoop 数据MySQL到HDFS(全量) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
107 0