?? rmasterdb.java
字號:
/* * * Copyright 2003,2004 The Watermill Team * * This file is part of Watermill. * * Watermill is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * Watermill is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Watermill; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */package Watermill.relational;import java.sql.*;import java.io.*;import Watermill.kernel.*;public class RMasterDB extends MasterDB { public Connection connection; private String dbUser,dbName,dbPassword; public Document duplicate(Document source,String targetDbName,UserData u){ try{ Statement stm=connection.createStatement(); String query="create database "+targetDbName; Msg.debug(query); stm.execute(query); Process psql=null; String command="/bin/bash -c \"/usr/bin/pg_dump -U "+dbUser+" "+dbName+" | /usr/bin/psql -U "+dbUser+" "+targetDbName+"\""; command="pg_dump -U "+dbUser+" -f "+dbName+".sql "+dbName; Msg.debug(command); psql=Runtime.getRuntime().exec(command); psql.waitFor(); command="psql -U "+dbUser+" "+targetDbName+" -f "+dbName+".sql"; Msg.debug(command); psql=Runtime.getRuntime().exec(command); psql.waitFor(); return new DB(targetDbName,dbUser,dbPassword); }catch(Throwable e){Msg.fatal(e);return null;} } public RMasterDB(String dbu,String dbn,String dbp){ dbName=dbn; dbUser=dbu; dbPassword=dbp; try { Class.forName("org.postgresql.Driver"); //load the driver connection=DriverManager.getConnection("jdbc:postgresql:"+dbName, dbUser, dbPassword); DatabaseMetaData dbmd = connection.getMetaData(); //get MetaData to confirm connection Msg.debug("Connection to "+dbmd.getDatabaseProductName()+" "+ dbmd.getDatabaseProductVersion()+" successful."); } catch (Exception e){ Msg.fatal(e.getMessage()); } }}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -