玩转MySQL ------使用java获取数据库的原信息

玩转数据库的元信息操作,主要是两个类:

1) DatabaseMetaData类: 包含驱动信息、数据库名、表名(视图、存储过程等)

通过con.getMetaData()可获得一个DatabaseMetaData类对象

2) ResultSetMetaData类: 包含表结构相关的信息,如:列(字段)的个数、名字、类型

和属性等信息

  通过rs.getMetaData()可获得一个ResultSetMetaData类对象

 

一、接下来进行DatabaseMetaData的操作演示:

1.获取MySQL等版本信息:

	@Test// DatabaseMetaData类的操作演示public void DBMetaDemo() throws Exception {Connection conn = Conn4Utils.getConn();//获取conn的工具类DatabaseMetaData dm = conn.getMetaData();System.out.println(dm.getDriverName());System.out.println(dm.getDriverVersion());System.out.println(dm.getDriverMajorVersion());System.out.println(dm.getDriverMinorVersion());System.out.println(dm.getMaxStatements());System.out.println(dm.getJDBCMajorVersion());System.out.println("---------1--------");}

结果:

2.获取数据库名:

// /如何获取数据库名ResultSet rs = dm.getCatalogs();while (rs.next()) {String name = rs.getString("TABLE_CAT");System.out.println(name);}

结果:

 

PS: 类型"TABLE"可从API文档中的getTableTypes()方法中查到,打开API,找到DatabaseMetaDate类:

找到方法getTables:

点开:

3.如何在已知数据库名的情况下,获取它当中的表名

使用getTables方法:

参数1和参数2都是数据库名,之所以要两个参数,是因为该函数要兼容不同的数据库,参数2可给正则的形式。参数3是表格

名,null为不用正则匹配,若取"%a%"代表只获取名字中包含"a"的表格(视图等),参数4是表格的类型如Table、View等

ResultSet rs3 = dm.getTables("abc", "abc", null,new String[] { "TABLE" });// 类型"TABLE"可从API文档中的getTableTypes()方法中查到while (rs3.next()) {String str = rs3.getString("TABLE_NAME"); // 字段名"TABLE_NAME"可从API文档中的getTables()方法中查到System.out.println(str);}

结果:

4.获取一个数据库中表信息

// 获取一个数据库中表信息---写死的---如果把数据库名和表名写成活的就可获取任意数据库与数据表Statement st = conn.createStatement();st.execute("use abc"); // execute()方法可以执行任意sql,包含: use aa, create// database, create table, alter...ResultSet rs2 = st.executeQuery(" select * from stud3");while (rs2.next()) {String str = rs2.getString(2);System.out.println(str);}

结果:

 

二、 ResultSetMetaData类的操作演示

1.跨库查询用"数据库名.表名",这部分可用DBMetadata把它做活

同样也是用ResultSet 的 rs.getMetaData()获取元数据,然后获取列,获取表的数据。

@Test// ResultSetMetaData类的操作演示public void RSMetaDemo() throws Exception {Connection conn = Conn4Utils.getConn();Statement st = conn.createStatement();String sql = "select * from abc.stud3"; // 跨库查询用"数据库名.表名",这部分可用DBMetadata把它做活ResultSet rs = st.executeQuery(sql);// ※※※ResultSetMetaData rsmd = rs.getMetaData();// 结果集元数据int columns = rsmd.getColumnCount(); // 字段数量/列数// ///输出表头for (int i = 1; i <=columns; i++) {String fieldName=rsmd.getColumnName(i);//jdbc中的列序号都是从1开始System.out.print(fieldName+"\t");      }System.out.println();System.out.println("--------------------------");while(rs.next()){//输出一行数据for(int i=0;i<columns;i++){String str = rs.getString(i+1);System.out.print(str+"\t");}System.out.println();}}

结果:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35866.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第4章 初识STM32—零死角玩转STM32-F429系列

第4章 初识STM32 全套200集视频教程和1000页PDF教程请到秉火论坛下载&#xff1a;www.firebbs.cn 野火视频教程优酷观看网址&#xff1a;http://i.youku.com/firege 本章参考资料&#xff1a;1、《STM8和STM32产品选型手册》2、SetupSTM32CubeMX-4.11.0.exe 4.1 什么是…

玩转大数据之——通过java操作office/wps的 EXCEL

操作Office文档&#xff0c;要用到apache公司的一个工具包: poi-3.7-20101029.jar poi插件的使用方式类似dom技术 不同版本&#xff1a; 接下来进行演示功能: 1.用纯Java技术实现创建一个名为a.xls的文件(工作薄)&#xff0c; 在其中新建一个"表1"的sheet,往B9单元…

Pandas —— resample()重采样和asfreq()频度转换

一、resample resample()进行重采样。 重采样&#xff08;Resampling&#xff09;指的是把时间序列的频度变为另一个频度的过程。把高频度的数据变为低频度叫做降采样&#xff08;downsampling&#xff09;&#xff0c;把低频度变为高频度叫做升采样&#xff08;upsampling&am…

玩转MySQL(4)---多表关联

一、首先&#xff0c;我们可以查看数据库的各种变量&#xff1a; 1.SHOW VARIABLES 查看数据库的变量 2.查看当前数据库的编码 SHOW VARIABLES WHERE variable_name LIKE character%; 3.解决中文乱码&#xff0c;如下三个编码保持一致就可以。 character_set_client、charac…

adb连接木木模拟器

木木模拟器调试到开发模式&#xff0c;在一般在\Nemu\vmonitor\bin中&#xff0c;运行命令行adb connect 127.0.0.1:7555

玩转MySQL -----处理大数据对象

一、大数据对象简介 1.LOB&#xff08;Large Object&#xff0c;大型对象&#xff09;类型的字段现在用得越来越多了。因为这种类型的字段&#xff0c;容量大&#xff08;最多能容纳4GB的数据&#xff09;&#xff0c;且一个表中可以有多个这种类型的字段&#xff0c;很灵活&am…

http 转 https 操作步骤

http 转https 花了很多的时间&#xff0c;走了很多的网弯路&#xff0c;最后还是弄好了 步骤&#xff1a; 第一步&#xff1a; 进入阿里云账号&#xff0c;进入 控制台 -》 安全&#xff08;云盾&#xff09; -》 CA证书服务 -》 购买证书 -》 注意&#xff1a;这里选项的时候…

python数据类型转换

Python数据类型转换 Python数据类型之间的转换 函数描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) 创建一个复数 str(x) 将对象 x 转换为字符串 repr(x) 将对象 x 转换为表达式…

搭建frida+木木模拟器运行环境

目录 pip安装frida安装木木模拟器开启模拟器的root权限打开模拟器USB调试安装RE文件管理器 下载frida服务端-Android下载frida-server文件移动文件到tmp下 使用adb连接mumu模拟器设置frida-server权限并启动查看是否启动成功 使用python调用 pip安装frida 本机环境win10 (AMD6…

利用ChatGPT 5分钟制作一份思维导图

一、利用ChatGPT列出思维导图大纲 二、利用ChatGPT继续将大纲转化为markdown语法 三、将上面内容复制到txt文档中保存 四、修改文件名后缀为md 五、将生成的md文件导入到xmind中 打开xmind软件&#xff0c;通过「文件→导入→markdown」&#xff0c;选择我们刚刚创建的文件导入…

音视频技术开发周刊 | 302

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 ChatGPT神器Code Interpreter终于开放&#xff0c;到底怎么用&#xff1f;这里有一份保姆级教程 Code Interpreter 已经正式开放。 上海世界AI大会&#xff1a;MidJourney…

Window之系统开机Administrator账户被停用

在我们的Win7系统开机时如果没有设置其他账户&#xff0c;并且我们的Administrator账户被停用怎么进入Win7系统呢&#xff1f; 解决方法&#xff1a; 重启电脑后按F8进入安全模式&#xff0c; 右键点击“我的电脑” -- “管理” -- “本地用户和组” -- “用户” -- 右键“Ad…

Spug“账户已被系统禁用”的解决办法

前置文章&#xff1a; Spug发布前端项目实战全过程https://blog.csdn.net/wdy_2099/article/details/120215392 Spug设置报警提醒功能&#xff08;钉钉、微信、邮箱&#xff09;落地详细https://blog.csdn.net/wdy_2099/article/details/120224867 问题&#xff1a;未知原因导…

桌面计算机安全禁用账户,Win10电脑提示“你的账户已被停用,请向系统管理员咨询”的解决教程...

有用户在安装 解决方法一&#xff1a; 1、此情况可以长按电源键强制关机再开机看到WIN10登陆界面时再次长按电源键强制关机,如此三次后再开机会看到“查看高级修复选项”的按钮,点此按钮会进入WINRE环境,选择“疑难解答”&#xff1b; 2、选择“高级选项”&#xff1b; 3、选择…

【转】您的账户已被停用,请向系统管理员咨询解决办法

升级win10后发现开机时进入安全模式长按F8已经没用了&#xff0c;其实win10中把安全模式放入了系统修复模块&#xff0c;下面就来介绍下win10如何进入安全模式。 进入下边这个界面可通过按住 SHIFT 点击重启即可 工具/原料 win10 方法/步骤 打开“开始”菜单&#xff0c;找到里…

您的账户已被停用,请向系统管理员咨询 解决方案(亲测有效)

当你的电脑误操作了以下步骤,或者被篡改了设置了这里 那恭喜你,重启后就登不上Administrator账户了 首先看一下网上的三种无效方式 无效方式一:安全模式进入用户和组 一般两种方式进入安全模式: 方式一:F8进入 方式二:按住shift 重启 (1)选中其中的安全模式,在安全…

国庆节文字摘抄好词好句好段怎么写?用便签记录就可以

一般来说&#xff0c;在国庆节有不少学生都有一项这样的作业&#xff0c;这就是写国庆节文字摘抄&#xff0c;例如一些关于国庆节的好词好句好段&#xff0c;这不仅可以帮助我们积累一些知识&#xff0c;也可以让我们在以后的日常生活、写作文中使用到。那么国庆节文字照抄怎么…

我一直都以为摘录好词好句是一个好…

我一直都以为摘录好词好句是一个好习惯&#xff0c;以前我看到一些好词好句我就会把它们抄写到笔记本上&#xff0c;把它们背熟&#xff0c;然后到了写文章时就滴字不漏地照搬进去。直到现在我才明白&#xff0c;原来这是一个坏习惯&#xff0c;说是摘录&#xff0c;其实是抄袭…

关注CSDN社区微信,更多精彩等你来

CSDN社区微信公众号“程序人生”&#xff08;微信ID&#xff1a;coder_life&#xff09;来了&#xff0c;每天我们会将CSDN社区中大量的优质内容浓缩成1~3篇文章&#xff0c;推送到您的手机中&#xff0c;让您无论何时何地都能感受到知识的精彩、技术的力量。 扫描二维码关注&a…