java查询表名称与表字段信息

问题引入:使用java连接数据库,我们想显示一个表,按一般方法是我们指定字段名进行查询。那如果我们想查询多个表难道都要指定字段?而且在特殊情况下,这样是不可行的。

 

  • 准备阶段:连接到数据库
//加载数据库驱动
Class.forName("com.mysql.jdbc.Driver"); 
//连接到数据库,test1是数据库名,root是用户名,123456是密码
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/test1", "root", "123456"); 
  • 查询数据库中已有表的信息:
    //此类提供关于整个数据库的信息,通过conn.getMetaData()获取
    DatabaseMetaData dbMetaDate = conn.getMetaData();
    //ResultSet是一个集合,与数据库操作很密切,可以看成java执行sql语句后接收返回结果的一个集合	
    ResultSet rs = dbMetaDate.getTables(null,null,null,new String[] {"TABLE"});		
                   while(rs.next()) { 
    //TABLE_NAME表示 表名,其他相关表示方法可以查看jdk帮助文档
    			System.out.println("表名:"+rs.getString("TABLE_NAME")); 			                
                            System.out.println("表类型:"+rs.getString("TABLE_TYPE"));
    			System.out.println("表所属数据库:"+rs.getString("TABLE_CAT"));
    			System.out.println("表备注:"+rs.getString("REMARKS"));
    			System.out.println();
    			
    		}
    

    getTables()方法详解:这个方法是在数据库的综合信息中获取表信息,可以对参数列表有疑问,因为有多个null。可以理解为我想获取指定条件的表,是不是就要添加限制。此方法的参数列表就是用来添加限制的。如下是此方法的jdk帮助文档

    	ResultSet getTables(String catalog,
    	                    String schemaPattern,
    	                    String tableNamePattern,
    	                    String[] types)
    	             throws SQLException
    /*catalog 字符串,目录名,""(空串)可以检索没有目录的表,null表示忽略目录;
    schemapattern字符串,为大纲名称的匹配模式,""可以检索没有大纲的表
    tablenamepattern字符串,为表名匹配模式;
    type字符串,为需要检索的表类型列表,null 表示返回所有类型;*/
    

    可见,上面例子中我们使用null表示对 目录,模式,表名都未添加限制。

通过上面的解释应该知道,在执行getTables()方法后,re里面就有数据库中表的信息了,这时只要把信息输出就可以了。详细信息可查询jdk帮助文档。

  •  查询表中字段的信息
    //与上面不同就是 rs存储的是表的信息,而rsColimns存储的是表中字段的信息。rs.getString("TABLE_NAME")代表表的名称
    ResultSet rsColimns = dbMetaDate.getColumns(null,"%",rs.getString("TABLE_NAME"),"%");
    while(rsColimns.next()) {
    				System.out.println("字段名:"+rsColimns.getString("COLUMN_NAME")+"-------"+"类型:"+rsColimns.getString("TYPE_NAME")+
    						"------"+"长度:"+rsColimns.getString("COLUMN_SIZE")+"-----"+"备注:"+rsColimns.getString("REMARKS"));
    			}
    

    万变不离其宗,查看表字段信息,与查看数据库中表的信息步骤是一样的。下面是jdk帮助文档

    	ResultSet getColumns(String catalog,
    	                     String schemaPattern,
    	                     String tableNamePattern,
    	                     String columnNamePattern)
    	              throws SQLException
    

    以上就是java查询数据库信息的方法,具体功能可以参考jdk文档。祝大家学习更上一层楼!!!

  •  

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值