metadatademo.java#1.1.1.1
来自「数据库远程同步软件NetBeans项目源文件 项目采用Jdesktop集成组件」· 1 代码 · 共 123 行
1
123 行
package com.qixuan.jdbc;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import com.qixuan.jdbc.util.ConnectionFactory;
import com.qixuan.jdbc.util.JdbcUtil;
public class MetaDataDemo {
public void databaseMetadata() {
Connection con = null;
ResultSet rs = null;
try {
con = ConnectionFactory.getConnection();
//获取元数据
DatabaseMetaData dbmd = con.getMetaData();
//System.out.println(dbmd.getDatabaseMajorVersion());
//System.out.println(dbmd.getDatabaseMinorVersion());
//System.out.println(dbmd.getDatabaseProductName());
//System.out.println(dbmd.getDriverMajorVersion());
if(dbmd.supportsGroupBy()) {
System.out.println("-- 支持分组查询..");
}
if(dbmd.supportsBatchUpdates()) {
System.out.println("-- 支持批处理..");
}
//使用DatabaseMetaData来获取当前用户下的所有表结构:
rs = dbmd.
getTables(
null,
null,
null,
new String[]{"TABLE"});
System.out.println(dbmd.getUserName()+"--- 当前用户下的所有表结构如下:");
while(rs.next()) {
String tableName = rs.getString(3);
System.out.println(tableName);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtil.release(con, null, rs);
}
}
public void resultSetMetadata() {
Connection con = null;
PreparedStatement pstm = null;
ResultSet rs = null;
try {
con = ConnectionFactory.getConnection();
String sql = "select id,first_name,salary from s_emp where dept_id = ?";
pstm = con.prepareStatement(sql);
pstm.setInt(1, 41);
rs = pstm.executeQuery();
// 使用元数据来输出结果集
ResultSetMetaData rsmd = rs.getMetaData();
//获取列的数量
int columnCount = rsmd.getColumnCount();
for(int i=1;i<=columnCount;i++) {
System.out.print(rsmd.getColumnLabel(i)+"\t");
}
System.out.println();
System.out.println("--------------------------------");
while(rs.next()) {
for(int i=1;i<=columnCount;i++) {
System.out.print(rs.getObject(i)+"\t");
}
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtil.release(con, pstm, rs);
}
}
/******************************
* 此方法利用execute和结果集的元数据
* 来执行任意的SQL语句,并动态的显示
* 执行结果
*/
public void executeSQL(String sql) {
Connection con = null;
PreparedStatement pstm = null;
ResultSet rs = null;
try {
//1. 获取连接
con = ConnectionFactory.getConnection();
pstm = con.prepareStatement(sql);
//2.执行SQL
boolean flag = pstm.execute();
//如果此方法返回TRUE,表示执行的是SELECT
if(flag) {
//得到结果集
rs = pstm.getResultSet();
//打印出结果集
JdbcUtil.printRS(rs);
} else {
int count = pstm.getUpdateCount();
System.out.println(count+" records was updated...");
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
JdbcUtil.release(con, pstm, rs);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?