java中的DataBaseMetaData与ResultMetaData使用:

DataBaseMetaData 类对象通过Connection类对象获取

1, 获取数据库的url
2, 获取用户名
3, 获取有哪些数据库

package com.xzq.jdbc;import com.xzq.dbutils.DbUitl;import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;public class prac3 {public static void main(String[] args) {try {Connection connection = DbUitl.getConnection();//通过connection对象获取DatabaseMetaData baseMetaData = connection.getMetaData();String url = baseMetaData.getURL();System.out.println(url);/*获取用户名*/String user = baseMetaData.getUserName();System.out.println(user);/*得到mysql中有哪些数据库*/ResultSet resultSet = baseMetaData.getCatalogs();while(resultSet.next()){System.out.println(resultSet.getString(1));}} catch (SQLException e) {e.printStackTrace();}}
}

运行结果:

ResultMetaData类对象通过ResultSet类获取

1,获取列数
2,获取字段名
3,获取字段别名
4,获取字段取值是否可以为空

package com.xzq.jdbc;import com.xzq.dbutils.DbUitl;import java.sql.*;public class prac5 {public static void main(String[] args) throws SQLException {/*放在外面,用来关闭资源*/Connection connection = null;PreparedStatement preparedStatement = null;ResultSet resultSet = null;try {connection = DbUitl.getConnection();String sql="select id 'ID号',name '姓名', birth '出生日' from user";preparedStatement = connection.prepareStatement(sql);resultSet = preparedStatement.executeQuery();/*根据集合得到元数据*/ResultSetMetaData resultSetMetaData = resultSet.getMetaData();/*获取列数*/int count = resultSetMetaData.getColumnCount();System.out.println("数据库的字段数:"+count);/*获取字段名*/String flag;for(int i=0; i<count ; i++){String columnname = resultSetMetaData.getColumnName(i+1);String columnlabel = resultSetMetaData.getColumnLabel(i+1);//resultSetMetaData.isNullable(index):判断字段取值是否可以为空if(resultSetMetaData.isNullable(i+1)==0){flag="不可以空值";}else{flag="可以为空值";}System.out.println(columnname+" - - "+ columnlabel+ " - - "+flag);}} catch (SQLException e) {e.printStackTrace();}finally {DbUitl.Close(resultSet,preparedStatement,connection);}}
}

运行结果:

Java中DataBaseMetaData与ResultMetaData基本使用相关推荐

  1. 第80节:Java中的MVC设计模式

    第80节:Java中的MVC设计模式 前言 了解java中的mvc模式.复习以及回顾! 事务,设置自动连接提交关闭. setAutoCommit(false); conn.commit(); conn ...

  2. stmt在java中的应用_JDBC技术基础总结转载,非原创

    JDBC的全称是Java DataBase Connectivity,即Java数据库连接.它是一套行业标准的API,可以在Java应用程序中与关系型数据库建立连接,并执行相关操作,例如Oracle, ...

  3. Java中的数据库架构导航

    jOOQ的重要组成部分是数据库架构导航模块jooq-meta. 代码生成器使用它来发现相关的架构对象. 我多次被问到为什么我要自己滚动而不使用其他库,例如SchemaCrawler或SchemaSpy ...

  4. java getcolumns_Java DatabaseMetaData.getColumns方法代碼示例

    本文整理匯總了Java中java.sql.DatabaseMetaData.getColumns方法的典型用法代碼示例.如果您正苦於以下問題:Java DatabaseMetaData.getColu ...

  5. java getcolumns_Java DatabaseMetaData.getFunctionColumns方法代碼示例

    本文整理匯總了Java中java.sql.DatabaseMetaData.getFunctionColumns方法的典型用法代碼示例.如果您正苦於以下問題:Java DatabaseMetaData ...

  6. java中实现具有传递性吗_Java中volatile关键字详解,jvm内存模型,原子性、可见性、有序性...

    一.Java内存模型 想要理解volatile为什么能确保可见性,就要先理解Java中的内存模型是什么样的. Java内存模型规定了所有的变量都存储在主内存中.每条线程中还有自己的工作内存,线程的工作 ...

  7. java中调用python

    在Java中调用Python </h1><div class="clear"></div><div class="postBod ...

  8. java中hashcode_浅谈Java中的Hash值

    1.Hash值有什么用? HashMap.HashTable.HashSet,所以涉及到使用Hash值进行优化存储的地方,都会用到HashCode.HashCode是Key,这种计算为提高计算的性能. ...

  9. JAVA中获取当前系统时间

    JAVA中获取当前系统时间 转自:http://www.cnblogs.com/Matrix54/archive/2012/05/01/2478158.html 一. 获取当前系统时间和日期并格式化输 ...

最新文章

  1. 看完 50000 张专辑封面,AI 设计师开始疯狂输出
  2. 三元组顺序表表示的稀疏矩阵加法_数据结构实验题(三元组顺序表表示的稀疏矩阵转置运算)...
  3. 文本分类实战(三)—— charCNN模型
  4. 四大传值详解:属性传值,单例传值,代理传值,block传值
  5. 开机后需要手动打开mysql_mysql解压版一键配置
  6. Linux应用集成MySQL数据库访问技巧
  7. markdown html vue,vue项目引入markdown
  8. Tornado是为何物
  9. Spring+Netty4实现的简单通信框架
  10. Vj程序设计作业H5
  11. 【问题解决】 请点击工具-Internet选项-高级,关闭“启用集成WINDOWS验证”选项。然后关闭浏览器,重新登录系统。
  12. 今日说“法”:FPGA芯片如何选型?
  13. 从0到一开发微信小程序(2)——开发第一个小程序
  14. 政治正确的睡前故事(4则)【搬运】【破事水】
  15. 计算机图形学孔令德基础知识,计算机图形学基础教程孔令德答案
  16. 每一款都很能打 苏宁小Biu连发新品布局IoT
  17. VUE·17:事件处理之 @keyup、@keydown 等键盘按键触发及 @keyup.enter 等别名
  18. html中国家的下拉列表,jQuery Select下拉列表国家选择插件
  19. 23种java设计模式详解-代理模式
  20. 【javascript输入一个数判断这个数是否为素数】判断素数

热门文章

  1. Vista新补丁解决N卡兼容问题
  2. docker ps 和 docker ps -a的区别
  3. 如何修改eclipse编辑器背景色
  4. 超七成初中生买烟不受阻
  5. 如何快速搞懂数字孪生的本质? by 傅一平
  6. 树莓派 使用 systemd 设置开机启动项
  7. CAD梦想画图中“PLAN命令”
  8. USB(FS、HS、LS)
  9. IT专业的就业前景和发展趋势
  10. 印度史上最大频谱拍卖结束 700/900 MHz频段无人问津