加班是為了不加班。
Java中使用了Process類,process類提供了執行從進程輸入,執行輸出到進程,等待進程完成,檢查進程的推出狀態,以及shut down掉進程。
Process process =null; String command1 = “你的命令”; process = Runtime.getRuntime().exec(command1); process.waitFor();
一般這樣寫就可以調用了。
在Linux環境下,想通過PostgerSQL自身的命令來進行導表,要准備以下幾個事。
1. 准備好要導入的表,最好也是使用PostgreSQL導出的,存放於Linux某目錄,用於導入;
2.設置好PostgreSQL命令的環境變量,和設置JDK一樣(很重要),將~/.bash_profile下的加一個PATH路徑,指向到bin目錄;
3.設置密碼配置;
方法一:設置環境變量 PGPASSWORD
PGPASSWORD 是 PostgreSQL 系統環境變量,在客戶端設置這后,那么在客戶端連接遠端數據庫時,將優先使用這個密碼。
--測試
postgres@linux-> export PGPASSWORD=mypassword
postgres@linux-> psql -h 192.168.1.25 -p 5432 Mydb postgres
psql (8.4.4)
Type "help" for help.
Mydb=> \q
備注:設置環境變量 PGPASSWORD ,連接數據庫不再彈出密碼輸入提示。 但是從安全性方面考慮,這種方法並不推薦。
方法二:設置 .pgpass 密碼文件
通過在客戶端 /home/postgres 目錄下創建隱藏文件 .pgpass ,從而避免連接數據庫時彈出密碼輸入提示。
--創建密碼文件 .pgpass ( on 客戶端 )
vi /home/postgres/.pgpass
--格式
hostname:port:database:username:password
--范例
192.168.1.25:5432:Mydb:postgres:mypassword
--權限
Chmod 600 .pgpass
--連接測試
postgres@linux-> psql -h 192.168.1.25 -p 5432 Mydb postgres
psql (8.4.4)
Type "help" for help.
Mydb=>
備注:在/home/postgres 目錄創建了密碼文件 .pgpass 文件后,並正確配置連接信息,那么客戶端連接數據時會優先使用 .pgass文件, 並使用匹配記錄的密碼,從而不跳出密碼輸入提示,這種方法比方法一更安全,所以推薦使用創建 .pgpass 文件方式。
方法三:修改服務器端 pg_hba.conf
修改認證文件 $PGDATA/pg_hba.conf, 添加以下行, 並 reload使配置立即生效。
host Mydb postgres 192.168.0.0/24 trust
[postgres@linux]$ pg_ctl reload -D $PGDATA / service postgresql reload
server signaled
--服務器端 pg_hba.conf 的配置
# IPv4 local connections:
host all all 127.0.0.1/32 trust
host Mydb postgres 192.168.0.0/24 trust
host all all 0.0.0.0/0 md5
--客戶端再次連接測試
postgres@linux-> psql -h 192.168.1.25 -p 5432 Mydb postgres
psql (8.4.4)
Type "help" for help.
Mydb=> \q
備注:修改服務端 pg_hba.conf 並 reload 后,不再彈出密碼輸入提示。
我目前使用的第一種。該方法我還會繼續改進一下。
然后使用psql命令就可以正確導入了。
