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,如需转载请自行联系原作者
相关文章
|
5天前
|
关系型数据库 MySQL Java
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
【IDEA】java后台操作mysql数据库驱动常见错误解决方案
26 0
|
7天前
|
Java 关系型数据库 MySQL
如何用java的虚拟线程连接数据库
本文介绍了如何使用Java虚拟线程连接数据库,包括设置JDK版本、创建虚拟线程的方法和使用虚拟线程连接MySQL数据库的示例代码。
20 6
如何用java的虚拟线程连接数据库
|
7天前
|
关系型数据库 MySQL Java
java协程操作mysql数据库
本文介绍了如何在Java项目中使用虚拟线程和协程操作MySQL数据库,并通过代码示例展示了如何利用CompletableFuture实现非阻塞数据库连接和操作。
16 2
java协程操作mysql数据库
|
1天前
|
Java
如何从Java字节码角度分析问题|8月更文挑战
如何从Java字节码角度分析问题|8月更文挑战
|
5天前
|
SQL Java 数据库
Springboot+spring-boot-starter-data-jdbc实现数据库的操作
本文介绍了如何使用Spring Boot的spring-boot-starter-data-jdbc依赖来操作数据库,包括添加依赖、配置数据库信息和编写基于JdbcTemplate的数据访问代码。
11 2
|
8天前
|
安全 网络协议 Java
Java反序列化漏洞与URLDNS利用链分析
Java反序列化漏洞与URLDNS利用链分析
28 3
|
7天前
|
Java 关系型数据库 MySQL
数据库的连接用Java
本文介绍了如何使用Java连接MySQL数据库,包括注册JDBC驱动、创建数据库连接URL、设置数据库用户和密码、建立连接以及关闭连接的完整代码示例。
9 0
数据库的连接用Java
|
8天前
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
44 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
2天前
|
SQL druid Java
JDBC和数据库连接池-两个工具类-JDBCUtilsByDruid和BasicDAO
JDBC和数据库连接池-两个工具类-JDBCUtilsByDruid和BasicDAO
8 0
|
3天前
|
存储 NoSQL Java
Java中NoSql 数据库的使用
Java中NoSql 数据库的使用
9 0