`

java 删除mysql/Oracle所有表

    博客分类:
  • java
 
阅读更多
最近测试项目,自己的本机搭建环境总是删除表,用java写了一个实现

package oracle;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

/**
 * @author
 *
 * 下午9:33:27
 * 删除Mysql/oracle表中的所有表
 */
public class OracleTableDel {
	
	public static void main(String[] args) throws SQLException {
		dropTable("root", "123456", "jdbc:mysql://192.168.2.101", "foo");//删除mysql
		dropTable("eos", "123456", "jdbc:oracle:thin:@192.168.2.111:1521:orcl", null);
	}
	
	/**
	 * 删除表 如果databaseName 为null则为oracle 否则为mysql
	 * @param username
	 * @param password
	 * @param url
	 * @param databaseName
	 */
	public static void dropTable(String username, String password, String url, String databaseName) {
		Connection conn = null;
		if(url.contains("oracle")) {
			//conn = getConnection("eos", "123456", "jdbc:oracle:thin:@192.168.2.111:1521:orcl", null);
			conn = getConnection(username, password, url, null);
		} else if(url.contains("mysql")) {
//			conn = getConnection("fan", "123456", "jdbc:mysql://192.168.2.101", "foo"); 
			conn = getConnection(username, password, url, databaseName);
			
		}
		if(conn != null) {
			List<String> tableList = getTableName(conn);
			try {
				Statement stat = conn.createStatement();
				String sql;
				for(String name : tableList) {
					if(url.contains("oracle")) {
						sql = " drop table " + name + " cascade constraints";//级联删除表
						stat.execute(sql);
					} else if(url.contains("mysql")) {
						sql = " drop table " + name ;
						stat.execute(sql);
					}
				}
				conn.commit();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	
	/**
	 * 查询所有的表名
	 * @param conn
	 * @return
	 */
	public static List<String> getTableName(Connection conn) {
		List<String> nameList = new ArrayList<String>();
		try {
			String catalog = conn.getCatalog();
			Statement stat = conn.createStatement();
			String sql;
			/**
			 * catalog 不为空则是 mysql 否则为oracle
			 */
			if(catalog != null) { 
				sql = "select table_name from information_schema.tables where table_schema='" + catalog + "'";
			} else {
				sql = "select table_name from user_tables ";
			}
			
			ResultSet rs = stat.executeQuery(sql); 
			while(rs.next()) {
				nameList.add(rs.getString(1));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return nameList;
	}
	
	/**
	 * 获取数据库连接
	 * @param username
	 * @param psword
	 * @param url
	 * @param databaseName
	 * @return
	 */
	public static Connection getConnection(String username, String psword, String url, String databaseName) {
		Connection con = null;// 创建一个数据库连接
		   try  {
			   if(url.contains("oracle")) {
				   Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序
				   con = DriverManager.getConnection(url , username, psword);// 获取连接
			   } else if(url.contains("mysql")) {
				   Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动
				   con = DriverManager.getConnection(url + "/" + databaseName + "?user=" + username + "&password=" + psword  + "&useUnicode=true&characterEncoding=UTF8");// 获取连接
			   }
		      
		       System.out.println("连接成功!");
		      
		   } catch (Exception e) {
		       e.printStackTrace();
		   } 
		   return con;
		}
	

}

 如果有更好的方法请分享。

分享到:
评论

相关推荐

    JDBC驱动包-Mysql/Oracle

    使用这些驱动包,开发者可以编写Java应用程序来执行常见的数据库操作,如创建表、插入数据、查询记录、更新和删除数据等。同时,JDBC还支持预编译的SQL语句(PreparedStatement)以提高性能,以及事务处理和异常处理...

    JDBC所用到的MySQL/Oracle等数据库jar包

    总结来说,本压缩包中的`mysql-connector-java-5.1.19-bin.jar`和`classes12.jar`是针对MySQL和Oracle数据库的JDBC驱动,它们使得Java开发者能使用标准的JDBC API与这两个数据库系统进行交互。在现代开发环境中,...

    sqlserver/oracle/mysql/等数据库驱动大全

    数据库驱动大全这个资源包含了SQL Server、Oracle以及MySQL等主流数据库系统的ODBC(Open Database Connectivity)驱动程序。ODBC是微软提出的一种标准接口,允许应用程序通过统一的方式与各种不同类型的数据库进行...

    java 连接sql server/Oracle/Mysql等常用数据库方法

    在Java开发中,连接SQL Server、Oracle、MySQL等常见数据库的方法主要有两种:JDBC-ODBC桥接和JDBC直连。这两种方式都是通过Java的JDBC(Java Database Connectivity)API来实现的,允许Java应用程序与各种数据库...

    SQL/Oracle/MySQL Driver整合

    "SQL/Oracle/MySQL Driver整合"这个主题涉及到如何在不同环境中使用相应的数据库驱动,以便应用程序可以与这些数据库进行通信。本文将详细介绍这三种数据库的驱动(Driver)以及它们的整合过程。 1. **SQL**:SQL...

    通过MSQL通过视图访问ORACLE中的表

    但是,可以通过中间层服务,如ODBC(Open Database Connectivity)或JDBC(Java Database Connectivity)建立连接,使MySQL能够“看到”Oracle中的数据。这样,我们就可以在MySQL中创建一个视图,这个视图实际上是对...

    Oracle/Mysql/Mongo/Sqlserver数据库驱动集合

    这里提到的"Oracle/Mysql/Mongo/Sqlserver数据库驱动集合"是一个包含这四种数据库的驱动程序的压缩包,主要用于Java开发环境中与这些数据库进行连接。 首先,Oracle数据库是甲骨文公司提供的企业级关系型数据库,...

    mysql&&oracle 依赖jar包

    标题提到的"mysql&&oracle 依赖jar包"是指用于连接MySQL和Oracle数据库的Java驱动程序,这些驱动程序通常以JAR(Java Archive)文件的形式存在。JDBC(Java Database Connectivity)是Java平台的标准API,它允许Java...

    mysql-connector-java-8.0.15.jar

    总的来说,MySQL Connector/J 8.0.15.jar 是 Java 开发人员连接到 MySQL 8.0 数据库的重要工具,它提供了全面的 JDBC 支持,让开发人员能够轻松地执行各种数据库操作,包括数据查询、插入、更新和删除。通过合理地...

    java oracle mysql数据库配置

    以上内容涵盖了Java、Oracle与MySQL数据库配置的基本概念和技术要点,包括不同类型的数据库驱动配置、表的创建与修改、数据操作以及Oracle数据库管理和MySQL的基本操作等。这些知识点对于初学者来说是非常重要的基础...

    Java swing mysql(Oracle)实现的飞机订票系统项目源码.zip

    本项目是基于Java Swing、MySQL(或Oracle)数据库技术实现的飞机订票系统,它涵盖了软件工程中的多个重要知识点,包括前端用户界面设计、后端数据处理以及数据库管理。以下是对这些关键技术点的详细说明: 1. **...

    java的jdbc数据库连接驱动包(mysql,oracle,sqlserver)

    本压缩包包含了三个主流数据库的JDBC驱动包,分别是针对MySQL、Oracle和SQL Server,这些驱动包使得Java程序能够与这三种数据库系统进行无缝通信。 1. MySQL JDBC驱动:`mysql-connector-java-5.1.20.jar` 是MySQL...

    mysql和Oracle的sql连接jar包

    在这个压缩包中包含的两个文件,`mysql-connector-java-5.1.18.jar` 和 `ojdbc14-10.2.0.2.0.jar`,分别对应于MySQL和Oracle数据库的JDBC连接器。 1. **MySQL Connector/J**: `mysql-connector-java-5.1.18.jar` 是...

    MySQL、Oracle数据库连接的jar包

    本文将深入探讨如何使用Java编程语言与这两个数据库进行连接,重点介绍标题和描述中提及的jar包——ojdbc6.jar(Oracle数据库的驱动)和mysql-connector-java-5.1.7-bin.jar(MySQL数据库的驱动)。 首先,让我们...

    Mysql迁移Oracle方案

    - **重要表数据总条数验证**:对比MySQL与Oracle数据库中重要表的数据条数,确认是否完全一致。 - **乱码验证**:检查Oracle数据库中是否存在乱码问题,特别是针对中文或其他非英文字符。 综上所述,MySQL到...

    java连接oracle和mysql数据的驱动程序jar包

    Java是一种广泛使用的编程语言,尤其在企业级应用中,它提供了强大的数据处理能力。Java Database Connectivity(JDBC...这样,你就可以轻松地利用Java的JDBC功能连接到Oracle和MySQL数据库,进行数据的增删改查操作。

    MySql和Oracle数据库本地或远程备份导出和导入(JAVA版)工具类.rar

    总的来说,这个JAVA工具类提供了对MySQL和Oracle数据库的备份和导入功能,通过集成常见的数据库备份工具,简化了开发人员的工作流程。在实际使用时,需要根据具体环境配置相关参数,并注意处理可能出现的各种异常...

    MySql Connector Java 5.1.23.rar

    MySQL Connector/J 充当了 JDBC 驱动的角色,使得 Java 应用能够连接到 MySQL 数据库,执行查询、插入、更新和删除等操作。 MySQL Connector/J 5.1.23 的主要特性包括: 1. **全面支持 JDBC 4.0 规范**:该版本的...

    java_mysql_connector_5.1.37.rar

    Java MySQL Connector 5.1.37 是一个关键的组件,它允许Java应用程序与MySQL数据库进行通信。这个rar压缩包包含了一个重要的Java驱动程序,即`mysql-connector-java-5.1.37.jar`,它是Java应用程序连接到MySQL服务器...

Global site tag (gtag.js) - Google Analytics