当前位置:网站首页>jdbc接口文档参考,jdbc接口方法逻辑探究
jdbc接口文档参考,jdbc接口方法逻辑探究
2022-08-11 05:28:00 【秋天已北】
jdbc 接口测试
package com.lqz.testjava;
import java.sql.*;
public class TablePrintStructure {
public static void main(String[] args) throws Exception {
// String driver = "com.mysql.cj.jdbc.Driver";
String driver = "org.postgresql.Driver";
// String url = "jdbc:mysql://localhost:3306/book_sc?serverTimezone=GMT";
String url = "jdbc:postgresql://192.168.0.130:5432/test_db";
String user = "user_name";
String password = "pass_word";
printTableStructure(driver, url, user, password);
}
/** * 打印所有表结构 * * @param driver driver * @param url url * @param user user * @param password password * @throws Exception exception */
private static void printTableStructure(String driver, String url, String user, String password) throws Exception {
Class.forName(driver);
Connection connection = DriverManager.getConnection(url, user, password);
System.out.println(connection);
DatabaseMetaData metaData = connection.getMetaData();
System.out.println(metaData);
// 获取所有表
ResultSet tableResultSet = metaData.getTables(
null,
null,
"test%",
new String[]{
"TABLE"});
System.out.println(tableResultSet.toString());
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("select * from test_tab");
System.out.println("---" + rs.getClass());
while (tableResultSet.next()) {
String tableName = tableResultSet.getString("TABLE_NAME");
System.out.println("table:" + tableName);
// 获取表字段结构
ResultSet columnResultSet = metaData.getColumns(null, "%", tableName, "%");
while (columnResultSet.next()) {
// 字段名称
String columnName = columnResultSet.getString("COLUMN_NAME");
// 数据类型
String columnType = columnResultSet.getString("TYPE_NAME");
// 字段长度
int datasize = columnResultSet.getInt("COLUMN_SIZE");
// 小数部分位数
int digits = columnResultSet.getInt("DECIMAL_DIGITS");
// 是否可为空 1代表可空 0代表不可为空
int nullable = columnResultSet.getInt("NULLABLE");
// 描述
String remarks = columnResultSet.getString("REMARKS");
System.out.println(columnName + " " + columnType + " " + datasize + " " + digits + " " + nullable + " " + remarks);
}
System.out.println("=================================");
}
}
}
参考微软的接口文档可以学习
如下方法可以找到接口组装的语法内容


详细sql
SELECT NULL AS TABLE_CAT,
NULL AS TABLE_SCHEM,
c.relname AS TABLE_NAME,
CASE c.relname ~ '^pg_'
WHEN true THEN CASE c.relname ~ '^pg_toast_'
WHEN true THEN CASE c.relkind
WHEN 'r' THEN 'SYSTEM TOAST TABLE'
WHEN 'i' THEN 'SYSTEM TOAST INDEX'
ELSE NULL END
WHEN false THEN CASE c.relname ~ '^pg_temp_'
WHEN true THEN CASE c.relkind
WHEN 'r' THEN 'TEMPORARY TABLE'
WHEN 'i' THEN 'TEMPORARY INDEX'
ELSE NULL END
WHEN false THEN CASE c.relkind
WHEN 'r' THEN 'SYSTEM TABLE'
WHEN 'v' THEN 'SYSTEM VIEW'
WHEN 'i' THEN 'SYSTEM INDEX'
ELSE NULL END
ELSE NULL END
ELSE NULL END
WHEN false THEN CASE c.relkind
WHEN 'r' THEN 'TABLE'
WHEN 'i' THEN 'INDEX'
WHEN 'S' THEN 'SEQUENCE'
WHEN 'v' THEN 'VIEW'
ELSE NULL END
ELSE NULL END AS TABLE_TYPE,
NULL AS REMARKS
FROM pg_class c
WHERE true
AND c.relname LIKE 'test%'
AND (false OR (c.relkind = 'r' AND c.relname !~ '^pg_'))
ORDER BY TABLE_TYPE, TABLE_NAME
自定义sql语句
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("select * from test_tab");
返回结果可以参考 SQLServerResultSet 关键字结果
SQLServerResultSet
返回结果引用信息方法及变量名查找
边栏推荐
- vscode插件开发——代码提示、代码补全、代码分析(续)
- OpenMLDB:线上线下一致的生产级特征计算平台
- mk文件介绍
- C language implementation guess Numbers (with source code, can be directly run)
- OpenMLDB v0.5.0 released | Performance, cost, flexibility reach new heights
- [Meetup Preview] OpenMLDB+OneFlow: Link feature engineering to model training to accelerate machine learning model development
- 127.0.0.1 connection refused
- 使用adb命令管理应用
- 场景驱动的特征计算方式OpenMLDB,高效实现“现算先用”
- Interpretation of the paper: GAN and detection network multi-task/SOD-MTGAN: Small Object Detection via Multi-Task Generative Adversarial Network
猜你喜欢

STM32-库函数-SetSysClock(void)函数解析-正点原子探索者

USB URB

EMQX企业版试用笔记

The third phase of the contributor task is wonderful

Open Source Machine Learning Database OpenMLDB Contributor Program Fully Launched

Intelligent risk control China design and fall to the ground

论文解读:GAN与检测网络多任务/SOD-MTGAN: Small Object Detection via Multi-Task Generative Adversarial Network

Diagnostic Log and Trace——dlt的编译和安装

构建面向特征工程的数据生态 ——拥抱开源生态,OpenMLDB全面打通MLOps生态工具链

第四范式OpenMLDB优化创新论文被国际数据库顶会VLDB录用
随机推荐
谨此留个纪念
Vscode remote connection server terminal zsh+Oh-my-zsh + Powerlevel10 + Autosuggestions + Autojump + Syntax-highlighting
Building a data ecology for feature engineering - Embrace the open source ecology, OpenMLDB fully opens up the MLOps ecological tool chain
Wonderful linkage | OpenMLDB Pulsar Connector principle and practical operation
自定义形状seekbar学习
构建面向特征工程的数据生态 ——拥抱开源生态,OpenMLDB全面打通MLOps生态工具链
JVM调优整理
精彩联动 | OpenMLDB Pulsar Connector原理和实操
SearchGuard配置
智能风控中台设计与落地
Promise.race学习(判断多个promise对象执行最快的一个)
网络七层结构(讲人话)
开源之夏 2022 火热来袭 | 欢迎报名 OpenMLDB 社区项目~
[Meetup Preview] OpenMLDB+OneFlow: Link feature engineering to model training to accelerate machine learning model development
ARM 汇编指令 ADR 与 LDR 使用
Diagnostic Log and Trace——为应用程序和上下文设置日志级别的方法
蓝牙技术-简介
umi约定式路由规则修改
OpenMLDB官网升级,神秘贡献者地图带你快速进阶
arduino的esp32环境搭建(不需要翻墙,不需要离线安装)