java获取数据库MetaData

​ 元数据(MetaData),即数据的描述信息的数据(表)。数据库的表的表名,表的属性名,表的存储位置,表的列数啊等等都是表的描述信息,而这些描述信息就是元数据啦。

1.DatabaseMetaData类

该类是数据库的描述对象通过Connection对象的getMetaData()方法获取。

public void testDatabaseMetaData() throws SQLException {String url = "jdbc:mysql://127.0.0.1:3306/test?useSSL=false&serverTimezone=UTC";String user = "root" ;    String password = "root";//这里随便创建一个连接Connection conn= DriverManager.getConnection(url,user,password);DatabaseMetaData dbMetaData =  conn.getMetaData();//获取数据库产品名称String productName = dbMetaData.getDatabaseProductName();//获取数据库版本号String productVersion = dbMetaData.getDatabaseProductVersion();//获取数据库用户名String userName = dbMetaData.getUserName();//获取数据库连接URLString userUrl = dbMetaData.getURL();//获取数据库驱动String driverName = dbMetaData.getDriverName();//获取数据库驱动版本号String driverVersion = dbMetaData.getDriverVersion();//查看数据库是否允许读操作boolean isReadOnly = dbMetaData.isReadOnly();//查看数据库是否支持事务操作boolean supportsTransactions = dbMetaData.supportsTransactions();
}

2.ParameterMetaData类

这个是参数的元数据对象,通过getParameterMetaData()获取

public void testParameterMetaData() throws SQLException {String url = "jdbc:mysql://127.0.0.1:3306/test?useSSL=false&serverTimezone=UTC";String user = "root" ;    String password = "root";//这里随便创建一个连接Connection conn= DriverManager.getConnection(url,user,password);String sql = "SELECT * FROM student WHERE name = ?;";  preparedStatement ps = conn.prepareStatement(sql);ParameterMetaData paramMetaData = st.getParameterMetaData();//获取参数个数int paramCount = paramMetaData.getParameterCount();//获取参数类型(参数下标以1开始)String paramTypeName = paramMetaData.getParameterTypeName(1);
}

3.ResultSetMetaData类

数据集的元数据类,通过ResultSet的getMetaData()获取。

public void testParameterMetaData() throws SQLException {String url = "jdbc:mysql://127.0.0.1:3306/test?useSSL=false&serverTimezone=UTC";String user = "root" ;    String password = "root";//这里随便创建一个连接Connection conn= DriverManager.getConnection(url,user,password);String sql = "SELECT * FROM student WHERE name = ?;";  preparedStatement ps = conn.prepareStatement(sql);ps.setString(1,"Tom");           //"Tom"为传入值ResultSet rs = ps.executeQuery();ResultSetMetaData rsm = rs.getMetaData();//获取列数int count = metaData.getColumnCount();//获取列名和列类型for(int i =1;i<=count;i++)System.out.println("列名"+rsm.getColumnName(i)+"类型"+rsm.getColumnTypeName(i))}

java获取数据库MetaData相关推荐

  1. Java获取数据库表的字段信息,及如何将ResultSet转为json

    为什么80%的码农都做不了架构师?>>>    一.Java获取数据库表的各个字段的相关信息 在某些开发情景中,需要获取数据库中表的各个字段的相关信息,如字段名,字段类型,字段大小等 ...

  2. Java获取数据库表名、字段名、字段类型及注释等信息

    以前有小伙伴在公众号留言问过如何通过java获取数据库的所有表.及表里字段的信息,只是私信回复过. 在最近的项目中架构部提出了一个数据源的配置需求,就是需要配置公司所有系统的数据库.表等信息,便于大数 ...

  3. java获取mysql的数据_【助教】Java获取数据库数据展示

    本文将给出一个最简单的Java查询数据库中一张表的数据并将查询结果展示在页面的例子. 实际上,我们要解决以下两个问题: Java与数据库交互(以JDBC为例) 数据展示在前台页面(以Servlet+J ...

  4. JAVA 获取数据库中表的结构

    网上的方法: private Connection connection; private Statement statement; public void initConnection(String ...

  5. Java获取数据库表结构

    Java能够操作数据库,当然能够获取到数据库的表结构. 虽然各个DB厂商查询数据库表结构的语句不同,但是Java中通过封装,可以使用共同的API来获取. 各个具体的DB厂商有各自的实现,只需导入相应的 ...

  6. java获取数据库的列名,类型等信息

    2019独角兽企业重金招聘Python工程师标准>>> 当你使用和学习JDK的时候,可以查看并学习它所提供给你的两个ResultSetMetaData  和DataBaseMetaD ...

  7. java获取数据库当前时间_java中获取系统的当前时间

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

  8. java获取数据库数据保存到本地txt文件中

    首先是Services @Service public class logServiceimpl implements logService {@Autowired@Qualifier("p ...

  9. java获取数据库时间12或13小时

    解决方案 修改程序客户端连接参数,加上**?serverTimezone=Asia/Shanghai**参数,参考: jdbc:mysql://xxxx:xxxx/test?serverTimezon ...

最新文章

  1. switch的case使用数组C语言,使用常量数组的元素作为switch语句中的case
  2. 线上服务 CPU 又 100% 啦?一键定位 so easy!
  3. c++ 暂停功能_10月10日丨注意:东部华侨城茶溪谷暂停开放!深圳9月街道环卫榜出炉!前五街道盐田占其三!…今日盐田大小事...
  4. go语言json解析的坑 注意事项
  5. java获取applicationcontext_SpringBoot获取ApplicationContext
  6. 项目管理九大知识领域过程逻辑关系图
  7. mysql 批量导入_MySQL快速大量导入
  8. 【C】C语言判断文件后缀名
  9. linux环境下从路径字符串中截取目录和文件名信息
  10. 电脑桌面上怎么找计算机,电脑自带计算器快捷键 如何快速打开电脑上的计算器...
  11. Unable to add window——token android.os.BinderProxy@196e65b8 is not valid;is your activit is running?
  12. 案例分享:Qt+RV1126+PLC医疗血浆采集仪(中英文输入、西门子PLC、数据库存储,各种数据统计,数值监测,电子秤操作,记录查询,全局报警等等)
  13. 由legacy+MBR改为UEFI+GPT引导方式
  14. 教你如何利用php.exe运行php文件
  15. 刷脸支付有助商户自主营销计划节省开支
  16. sipXecs技术交流QQ群
  17. 【二 zedboard】PS和PL之间的交互
  18. postgresql时间差计算
  19. 阅读记录(2017年1月)
  20. android app crash测试,APP常见崩溃原因和测试方法整理

热门文章

  1. mysql的常用内置函数
  2. [GDAL]写入shp
  3. 扩展语法检查(SLIN检查)
  4. web性能测试分析-工具篇 (转载)
  5. JS判断一个数组中是否有重复值的三种方法
  6. [转]详细讲解提高数据库查询效率的实用方法、外键关于性能
  7. java中将string类型转int类型或者将string类型转long类型方法(亲测)
  8. Java中资源关闭的处理方式
  9. MySQL(七):InnoDB 自适应Hash索引(Adaptive Hash Index)
  10. 高并发系统数据库架构设计