有人可以告诉我如何通过使用java数据库连接来检查微软访问中是否存在表。搜索后,我会去做类似的事情 如果不是IsNull(DlookUp(“Name”,“MSysObjects”,“Name ='TableName'”))那么 '表存在 我试图在jdbc程序中实现相同的东西
import java.sql.*;
class CheckTable{
public static void main(String [] rak){
boolean flag;
try{
flag=false;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dataSourceName="test";
String dbURL="jdbc:odbc:"+dataSourceName;
Connection con=DriverManager.getConnection(dbURL,"","");
Statement s=con.createStatement();
//s.execute("create table xyz (name text, hiredate date)");
//s.execute("insert into xyz values('xz1','22-dec-2005')");
// s.execute("insert into xyz values('pr','2-21-2009')");
s.execute(" If Not IsNull(DlookUp('Name','MSysObjects',"Name='xyz'")) Then "+ flag=true + ");
/*
ResultSet rs=s.getResultSet();
if (rs!=null){
while(rs.next()){
System.out.println(rs.getString(1)+rs.getString(2));
}}
*/
}
catch(Exception e){
e.printStackTrace();
}
System.out.println(" table exists :"+flag);
}
}
我在s.execute()语句中收到错误请帮我解释语法。 我得到的错误是: ')'预计 非法开始表达 未公开的字符文字 不是声明 ;除外 所有错误都在线上执行(“如果不是IsNull”(DlookUp('Name','MSysObjects',“Name ='xyz'”))然后“+ flag = true +”);
答案 0 :(得分:0)
试试select 1 from TABLE_NAME
。如果表不存在,这将抛出SQLException
。检查SQLState
和errorCode
- 此案例会有一个特定值。
不幸的是,每个数据库的代码都不同,因此您必须在控制台上打印一次,然后在异常处理程序中复制正确的值。