• 17.13使用元数据分析数据库(血干JAVA系类)


    ResultSetMetaData rsmd = pstmt.getMetaData();

    DatabaseMetaData dmd = conn.getMetaData();
    ResultSet rs = dmd.getPrimaryKeys(null, null, “user”);

    在这里插入图片描述

    17.13.1 DatabaseMetaData

    在这里插入图片描述
    在这里插入图片描述

    【例17.31】使用DatabaseMetaData取得数据库的元信息

    package file;
    
    import java.sql.Connection;
    import java.sql.DatabaseMetaData;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.Savepoint;
    import java.text.SimpleDateFormat;
    
    public class demo 
    {
    	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
    	public static final String DBURL = "jdbc:mysql://localhost:3306/java_mysql";
    	public static final String DBUSER = "root";
    	public static final String DBPASS = "dyh20011022";
    	
    	public static void main(String[] args) throws Exception
    	{		
    		Class.forName(DBDRIVER);//驱动
    	
    		
    		Connection conn =DriverManager.getConnection(DBURL, DBUSER, DBPASS);
    		DatabaseMetaData dmd = conn.getMetaData();
    		ResultSet rs = dmd.getPrimaryKeys(null, null, "user");
    		
    		
    		System.out.println("数据库名称:"+dmd.getDatabaseProductName());
    		System.out.println("数据库版本:"+dmd.getDatabaseMajorVersion()+"."+dmd.getDatabaseMinorVersion());
    		while(rs.next())//主键不只一个
    		{
    			System.out.println("表类别:"+rs.getString(1));
    			System.out.println("表模式:"+rs.getString(2));
    			System.out.println("表名称:"+rs.getString(3));
    			System.out.println("列名称:"+rs.getString(4));
    			System.out.println("主键序列号:"+rs.getString(5));
    			System.out.println("主键名称:"+rs.getString(6));
    			System.out.println("-----------------------");
    		}
    
    		//关闭
    		conn.close();
    	}
    }
    
    
    • 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
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45

    因为:多个数据库存在user表
    ResultSet rs = dmd.getPrimaryKeys(null, null, “user”);//没有限制具体
    在这里插入图片描述

    17.13.2 ResultSetMetaData

    在这里插入图片描述

    【例 17.32 】取得 ResultSet 的 MetaData

    String sql = "select id,name,password,age,sex,birthday from user";
    ResultSetMetaData rsmd = pstmt.getMetaData();
    
    rsmd.getColumnCount()
    rsmd.isAutoIncrement(1))			
    rsmd.getColumnName(1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    package file;
    
    import java.sql.Connection;
    import java.sql.DatabaseMetaData;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.Savepoint;
    import java.text.SimpleDateFormat;
    import  java.sql.ResultSetMetaData;
    
    public class demo 
    {
    	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
    	public static final String DBURL = "jdbc:mysql://localhost:3306/java_mysql";
    	public static final String DBUSER = "root";
    	public static final String DBPASS = "dyh20011022";
    	
    	public static void main(String[] args) throws Exception
    	{		
    		Class.forName(DBDRIVER);//驱动
    		String sql = "select id,name,password,age,sex,birthday from user";
    		
    		Connection conn =DriverManager.getConnection(DBURL, DBUSER, DBPASS);
    		PreparedStatement pstmt  = conn.prepareStatement(sql);
    		ResultSetMetaData rsmd = pstmt.getMetaData();
    		
    		System.out.println("一共:"+rsmd.getColumnCount()+"条信息.");
    		if(rsmd.isAutoIncrement(1))
    		{
    			System.out.println(rsmd.getColumnName(1)+"列自增。");
    		}
    		
    		//关闭
    		pstmt.close();
    		conn.close();
    	}
    }
    
    
    • 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
    • 37
    • 38
    • 39

    在这里插入图片描述

  • 相关阅读:
    Tlsr8258开发-修改蓝牙hid mouse
    使用IDEA时遇到java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver报错的解决方案
    优雅编程:在IntelliJ IDEA中使用VIM (第02章:字母间移动,与鼠标的暂时分手(hjkl))
    单相3.5kw无变压器住宅并网光伏系统研究
    基于webman的CMS,企业官网通用PHP后台管理系统
    js:对于JavaScript数字对象的初步认知
    中国领先世界的机会稍纵即逝
    Matlab:查找要使用的函数
    CyclicBarrier原理及源码解析
    Dive into TensorFlow - 解析 TF 核心抽象 op 算子
  • 原文地址:https://blog.csdn.net/qq_52384627/article/details/125478144