jsp数据库脱裤脚本,可脱mysql,oracle.

<%@ page import="java.sql.*" %>  
 
<%@ page import="java.util.*" %>  
 
<%@ page import="java.io.*" %>  
 
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>  
 
<%  
 
try {  
 
    //备份文件存放的绝对路径  
 
    String backupDir = "c:/";  
 
    String ex=".txt";  
 
    String driver = "com.mysql.jdbc.Driver";  
 
      
 
    String url = "jdbc:mysql://localhost:3306/dbname";  
 
    String username = "user";  
 
    String password = "pass";  
 
       
 
    Class.forName(driver);  
 
    Connection conn = DriverManager.getConnection(url, username, password);  
 
   
 
    // Get tables  
 
    DatabaseMetaData dmd = conn.getMetaData();  
 
    ResultSet rs = dmd.getTables(null, null, "%", null);  
 
    ArrayList<String> tables = new ArrayList<String>();  
 
    while (rs.next()) {  
 
        tables.add(rs.getString(3));  
 
    }  
 
    rs.close();  
 
   
 
       
 
   
 
    ResultSetMetaData rsmd = null;  
 
    Statement stmt = conn.createStatement();  
 
    for (String table : tables) {  
 
           
 
        rs = stmt.executeQuery("SHOW CREATE TABLE " + table);  
 
        rsmd = rs.getMetaData();  
 
        while (rs.next()) {  
 
            /* 
 
             * mysql> SHOW CREATE TABLE t\G 
 
             *************************** 1. row *************************** 
 
             *        Table: t 
 
             *        Create Table: CREATE TABLE t ( 
 
             *                        id int(11) default NULL auto_increment, 
 
             *                        s char(60) default NULL, 
 
             *                        PRIMARY KEY (id) 
 
             *                      ) TYPE=MyISAM 
 
             */  
 
            // JDBC is 1-based, Java is not !?  
 
//            osw.append(rs.getString(2) + "\n\n");  
 
        }  
 
        rs.close();  
 
   
 
        out.println("Dumping data for table " + table + "...<br />");  
 
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(backupDir+table+ex), "UTF-8");  
 
        BufferedWriter bw=new BufferedWriter(osw);  
 
        rs = stmt.executeQuery("SELECT * FROM " + table);  
 
        rsmd = rs.getMetaData();  
 
        while (rs.next()) {  
 
            bw.append("INSERT INTO " + table + " VALUES(");  
 
            // JDBC is 1-based, Java is not !?  
 
            for (int col = 1; col <= rsmd.getColumnCount(); col++) {  
 
             bw.append("'");  
 
                if (rs.getString(col) == null)  
 
                 bw.append("");  
 
                else  
 
                    bw.append(rs.getString(col));  
 
                if (col == rsmd.getColumnCount())  
 
                 bw.append("'");  
 
                else  
 
                 bw.append("',");  
 
            }  
 
            bw.append(");");  
 
            bw.newLine();  
 
        }  
 
        bw.flush();  
 
        bw.close();  
 
        osw.close();  
 
        rs.close();  
 
    }  
 
    stmt.close();  
 
       
 
    out.println("backup is ok");  
 
   
 
    conn.close();  
 
} catch (Exception e) {  
 
    response.setStatus(200);  
 
    e.printStackTrace();  
 
}  
 
out.println("<p><h3>finished</h3></p>");  
 
%>  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值