mysql 批量导出建表语句 (视图,函数同理)
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Tables {
	    private static String driverName = "com.mysql.jdbc.Driver";
public static void main(String[] args) {
	    	Connection con = null ;
	    	Statement stmt =null;
	    	PreparedStatement pstmt = null ;
	    	
	        try {
	            Class.forName(driverName);
		        con = DriverManager.getConnection("jdbc:mysql://192.168.5.148/xxx", "root", "123456");
		        String sql = "SELECT TABLE_NAME  FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'ifms' AND TABLE_TYPE ='BASE TABLE'";
		        stmt = con.createStatement();
		        pstmt = con.prepareStatement(sql);
		        ResultSet res = stmt.executeQuery(sql);
		        while (res.next()) {
		            String tableName = res.getString(1);
		            /*stmt = con.createStatement();*/
		            if(tableName.contains("`")) continue;
		            ResultSet rs = pstmt.executeQuery("show create table `"+tableName+"`");
		            while(rs.next()){
		            	 File file = new File("C:\\b_tables\\"+tableName+".sql");
		                 OutputStreamWriter osw = null;
	            	 try {
            	          osw = new OutputStreamWriter(new FileOutputStream(file));
            	          osw.write(rs.getString(2));
            	          System.out.println(tableName+"导出成功");
	                    } catch (FileNotFoundException e) {
	                        e.printStackTrace();
	                    } catch (IOException e) {
	                        e.printStackTrace();
	                    } finally {
            	            try {
            	                osw.flush();
                                osw.close();
            	            } catch (IOException e) {
                             e.printStackTrace();
                            }
	                   }
		          }
		        } 
	        } catch (ClassNotFoundException e) {
	            e.printStackTrace();
	            System.exit(1);
	        } catch (SQLException e) {
				e.printStackTrace();
			}finally{
				if(pstmt!=null){
					try {
						pstmt.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
	        	if(stmt!=null){
	        		try {
						stmt.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}
	        	}
	        	if(con!=null){
	        		try {
						con.close();
					} catch (SQLException e) {
						e.printStackTrace();
					}	
	        	}
	        }
	    }
}
mysql 批量导出建表语句 (视图,函数同理)的更多相关文章
- mysql和oracle建表语句以及数据类型的区别
		
1.mysql和oracle建表语句的区别 mysql DROP TABLE IF EXISTS `order`;CREATE TABLE `order` ( `id` int(11) NOT NU ...
 - postgresql 导出建表语句的方法-类似describe table
		
https://www.youtube.com/watch?v=PMfcsYzj-9M 这个视频不错, The Definitive Guide to Object-Oriented JavaScr ...
 - Python导出MySQL数据库中表的建表语句到文件
		
为了做数据对象的版本控制,需要将MySQL数据库中的表结构导出成文件进行版本化管理,试写了一下,可以完整导出数据库中的表结构信息 # -*- coding: utf-8 -*- import os i ...
 - mysql workbench 导出建表语句
		
导出建表语句和数据 server—–>data export—–>选中表 注意,export to dump project folder,这种方式是每个表对应一个sql文件. 导出建 ...
 - MySQL 查询 存储过程 视图 触发器 函数 索引 建表语句 数据库版本 当前登录用户 当前数据库名称
		
MySQL 查询 存储过程 视图 触发器 函数 索引 建表语句 数据库版本 当前登录用户 当前数据库名称 INFORMATION_SCHEMA.TABLES INFORMATION_SCHEMA. ...
 - 三种常用的MySQL建表语句(转)
		
MySQL建表语句是最基础的SQL语句之一,下面就为您介绍最常用的三种MySQL建表语句,如果您对MySQL建表语句方面感兴趣的话,不妨一看. 1.最简单的: CREATE TABLE t1( ...
 - MySQL建表语句生成Golang代码
		
1. 背景 对于后台开发新的需求时,一般会先进行各种表的设计,写各个表的建表语句 然后根据建立的表,写对应的model代码.基础的增删改查代码(基础的增删改查服务可以划入DAO(Data Access ...
 - sqlserver 建表语句,获取建表语句的存储过程,包括排序规则,索引,字段说明,支持同时生成多个表
		
先创建一个分割表名的分割函数 --表值函数用以截取字符串 --如果为其添加一列主键id,则其顺序就会固定了 create FUNCTION [Split](@text NVARCHAR(max)) ) ...
 - ORACLE 建表语句(表名及字段名大写)
		
ORACLE建表时如果表名或者字段名存在大小写同时存在的情况下,默认为区分大小写,此时在select/updata等操作时需要在表名或者字段名上添加双引号,否则会报"视图不存在"的 ...
 
随机推荐
- 修改XCode的Product的输出目录(有时不生效需看)
			
通常在情一般都不建议使用绝对路径,因为写死之后,换环境,换平台,又要重新修改路径,因此常常使用相对路径,哪么相对路径通常使用的就是环境变量了. 在Mac 中,xcode 中build settings ...
 - redis学习教程地址
			
http://www.yiibai.com/redis/redis_quick_guide.html
 - AngularJS基础知识1
			
一.angularJS简介 1.什么是 AngularJS? AngularJS 是一个 JavaScript 框架.它是一个以 JavaScript 编写的库.AngularJS是协助搭建单页面工程 ...
 - 如何在Eclipse中查看JDK以及JAVA框架的源码(转载)
			
原文链接:http://www.cnblogs.com/outlooking/p/5243415.html 设置步骤如下: 1.点 “window”-> "Preferences&qu ...
 - node的错误处理
			
当node程序出现错误的时候,首先是要捕捉到错误,然后处理错误,不能让进程挂掉,最后是将错误写进日志. 1.在app.js最开始写,用process对象,监听uncaughtException事件pr ...
 - SpringMVC常用配置-添加静态资源处理器-针对SpringMVC中静态资源无法访问的问题
 - Python--循环语句
			
Python 循环语句 循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式: Python提供了for循环和while循环(在Python中没有do..while循 ...
 - TypeScript & JavaScript
			
http://www.typescriptlang.org/docs/tutorial.html handbook: Basic Types Variable Declarations Interfa ...
 - DNS 中的协议字段详细定义
			
DNS中的协议字段定义 Table of Contents 1 概述 2 DNS Classes 3 DNS OpCodes 4 DNS RCODEs 5 DNS Label Types 6 DNS资 ...
 - java基础类型、包装器
			
char a = 'h'; //类包装器 Character aobj = a ;//自动装箱 byte b = 6; Byte bobj = b; short s = 234; Short sob ...