[Java] SQL ResultSet轉換成JSON Array

剛好遇到需要將query出來的result轉成json再pass給前端

怕以後又遇到同樣的需求,先筆記下來

記得import

import org.json.JSONArray;
import org.json.JSONObject;
import java.sql.ResultSet;

轉換的method

public static JSONArray convert(ResultSet resultSet) throws Exception {

	JSONArray jsonArray = new JSONArray();

	while (resultSet.next()) {

		int columns = resultSet.getMetaData().getColumnCount();
		JSONObject obj = new JSONObject();

		for (int i = 0; i < columns; i++)
			obj.put(resultSet.getMetaData().getColumnLabel(i + 1).toLowerCase(), resultSet.getObject(i + 1));

		jsonArray.put(obj);
	}
	return jsonArray;
}

更改phpMyAdmin在Apache託管的預設port

有時為了安全起見,我們希望將phpMyAdmin這種存取資料庫的窗口不要使用網頁伺服器常用的port 80

這樣有個好處,就是能在server前面的防火牆建立filter rule讓該port只有特定ip能存取

 

為了達成目的,我們修改ports.conf讓Apache除了監聽port 80,也監聽準備拿來放phpMyAdmin的port 81

用自己熟悉的編輯器打開/etc/apache2/ports.conf,在Listen 80下面再加一行

Listen 81

 

存檔,切換目錄到/etc/apache2/sites-available/下新增phpmyadmin.conf

把連到port 81時要對應到哪個資料夾的規則寫在裡面

<VirtualHost *:81>
    DocumentRoot /usr/share/phpmyadmin/
</VirtualHost>

閱讀更多

建立以太坊私有鏈(三) 執行投票合約

上一篇我們已經將合約部署至區塊鏈上了,在這篇執行合約前

我想要先講一下如果往後把terminal關掉了,要怎麼把合約的實例(instance)從區塊鏈上設回變數

 

取回部署在區塊鏈上的合約實例

如果你是接續上一篇做到這裡的,也就是在geth中輸入vote.address有反應的,可以跳過這部份

 
在取回合約實例之前,我們必須要有ABI及合約地址這兩樣才能把合約實例找回來

ABI類似合約的描述檔,記錄這個合約有哪些function,function有哪些input、回傳、範圍...等
閱讀更多

建立以太坊私有鏈(二) 編寫投票合約

經過上一篇建立以太坊私有鏈(一) 節點部署,目前已經建立創世區塊並且成功讓兩個節點相識了

(在terminal鍵入net.peerCount應該會顯示1,如果還是0的檢查看看是不是前面漏了什麼步驟)

接下來要讓兩個節點開始挖礦,一起維護這條私有鏈

 

解鎖帳戶

挖礦之前先調用personal.unlockAccount()解鎖帳戶

參數的eth.coinbase會refer到剛剛創的帳戶

terminal1 $> personal.unlockAccount(eth.coinbase)
terminal2 $> personal.unlockAccount(eth.coinbase)

閱讀更多