在Java应用中使用"Drop If Exists"查询

16 浏览
0 Comments

在Java应用中使用"Drop If Exists"查询

我试过寻找一个类似的问题但是没找到,所以我要发布一个!我正在创建一个Java程序来为我删除特定的表,MySQL的代码如下:

String[] tablesToDrop = new String[]{tableName,tableName2};
Connection con = DriverManager.getConnection(dbUrl, userName,password);
Statement stmt = con.createStatement();
for (int i = 0; i < tablesToDrop.length; i++) {
                System.out.println("Dropping " + tablesToDrop[i] + " Table..");
                stmt.executeUpdate("DROP TABLE IF EXISTS " + tablesToDrop[i]);
            }

我的问题是,对于SQL Server 2008版本来说,它会是什么样子?stmt.executeUpdate(???)部分如何书写?我想如果存在,则删除一个表,将表名从数组中获取并传递到for循环中。

admin 更改状态以发布 2023年5月21日
0
0 Comments

Java通过驱动程序与数据库进行通信。对于应用程序员来说,这必须是完全透明的。因此,MySql和MS SQL服务器之间没有任何区别。只需更改驱动程序即可。

然而,在SQL方言方面可能存在差异。通常,人们尝试通过使用Java-to-DB映射框架(如JPA、Hibernate等)来避免这些差异。但是,由于您正在使用普通的JDBC,因此这是您的责任。

我认为您现在正在尝试的语句将有效。但是,如果您将来想要使用普通的JDBC并支持几种DB类型,我建议您将SQL语句保存在单独的文件中(例如属性文件)并从其中读取。您甚至可以滥用ResouceBundle机制,将SQL方言用作“区域设置”。

0
0 Comments
IF EXISTS(select * from sysobjects where name='tblname') drop table tblname

(原文)

0