PreparedStatement pstmt = conn.prepareStatement(strsql); ResultSetMetaData rsmd = pstmt.getMetaData(); 嗯,用了这个方法了,可是提示出错 emp java.sql.SQLException: ORA-01003: 语句未进行语法分析 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208) at oracle.jdbc.ttc7.v8Odscrarr.receive(v8Odscrarr.java:192) at oracle.jdbc.ttc7.TTC7Protocol.describe(TTC7Protocol.java:592) at oracle.jdbc.driver.OracleStatement.describe(OracleStatement.java:5496) at oracle.jdbc.driver.OracleResultSetMetaData.<init>(OracleResultSetMetaData.java:76) at oracle.jdbc.driver.OracleResultSetImpl.getMetaData(OracleResultSetImpl.java:156) at oracle.jdbc.driver.OraclePreparedStatement.getMetaData(OraclePreparedStatement.java:829) at GenEntity.show(GenEntity.java:44) at GenEntity.main(GenEntity.java:57)
package com.csdn;import java.util.Scanner;public class GetTable { // 构造下数据 JDBC就 不写了 JDBC查询 public static boolean checktb(String name) {
//模拟数据库中所有的表名
String[] a = {"tab1","tab2","tab3","tab4","tab5"};
for (int i = 0; i < a.length; i++) {
// 模拟select name from tabs
if (name.trim().equals(a[i])) {
System.out.println("该表--" + name + "存在---");
return true;
}
}
return false;
} // 控制台控制控制name输入
public static void manageName() {
System.out.println("请输入您需要验证的tab:");
Scanner s = new Scanner(System.in);
String name = s.nextLine();
if (checktb(name)) {
// 继续
manageName();
} else {
System.out.println("该表--" + name + "--不---存在---");
// 继续
manageName();
}
}
public static void main(String[] args){
manageName();
}
}输出;
请输入您需要验证的tab:
tab1
该表--tab1存在---
请输入您需要验证的tab:
tab7
该表--tab7--不---存在---
请输入您需要验证的tab:
getTables 可以查看某个数据库(模式)中的数据表。
ResultSetMetaData rsmd = pstmt.getMetaData();
嗯,用了这个方法了,可是提示出错
emp
java.sql.SQLException: ORA-01003: 语句未进行语法分析 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
at oracle.jdbc.ttc7.v8Odscrarr.receive(v8Odscrarr.java:192)
at oracle.jdbc.ttc7.TTC7Protocol.describe(TTC7Protocol.java:592)
at oracle.jdbc.driver.OracleStatement.describe(OracleStatement.java:5496)
at oracle.jdbc.driver.OracleResultSetMetaData.<init>(OracleResultSetMetaData.java:76)
at oracle.jdbc.driver.OracleResultSetImpl.getMetaData(OracleResultSetImpl.java:156)
at oracle.jdbc.driver.OraclePreparedStatement.getMetaData(OraclePreparedStatement.java:829)
at GenEntity.show(GenEntity.java:44)
at GenEntity.main(GenEntity.java:57)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;public class GenEntity {
public void show() {
System.out.println("请输入表名:");
String s = null;
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
System.in));
s = br.readLine();
br.close();
} catch (IOException e) {
e.printStackTrace();
} Connection conn = null;
Statement stm = null;
String tablename = s;
ResultSet rst = null;
String strsql = "select * from " + tablename; String[] colnames = null; // 列名数组 String[] colTypes = null; // 列名类型数组 int[] colSizes = null; // 列名大小数组 try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@Steven:1521:oracle9", "scott", "tiger");
stm = conn.createStatement();
rst = stm.executeQuery(strsql);
PreparedStatement pstmt = conn.prepareStatement(strsql);
ResultSetMetaData rsmd = pstmt.getMetaData();
while (rst.next()) {
System.out.println(rst.getInt(1) + " " + rst.getString(2));
} } catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
} public static void main(String args[]) {
new GenEntity().show();
}}