2019-03-01から1ヶ月間の記事一覧

java.lang.reflect.Type インスタンスを生成する方法

総称型orクラスを知りたい時、知らせたい時に java.lang.reflect.Type を伝える為の Type インスタンスを生成する方法 Google guice を使用している前提で2通りある。com.google.common.reflect.TypeToken import com.google.common.reflect.TypeToken; Typ…

Wicket Bootstrap navbar と pagenation

Wicket で、Bootstrap を採用して navbar と Wicket の DataView で描画するページング を Bootstrap の Pagenation にするようにした時、 デザイン作業中は問題ないのですが、 z-index の指定をしないと、 navbar のドロップメニューが Pagenation の下に隠…

MalformedException の捕捉処理を書き易くする。

Google gson の fromJson や JsonParser で発生する JSON書式エラー、MalformedException の捕捉を するとして、try~ctach 文の中に書いてもいいのですが、 1つのロジックで何回もJSON読込みの必要な処理があって、毎回 catch文の中で MalformedException …

JSONの書式チェック

Google gson の fromJson や JsonParser 生成は、次のようなJSONであると { "A": "12", } com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected name at line 3 column 2 path $.A と例外を発生してくれます。JSO…

配列型に対するmybatis の TypeHandler よく使いそうなものを作った

先日書いた int[] → ArrayTypeHandler - Oboe吹きプログラマの黙示録 に刺激されて、String[ ] , LocalDate[ ] , LocalDateTime[ ] , double[ ] とのマッピング もあるべきと思い、 GitHub - yipuran/yipuran-mybatis: mybatis used application の方で公開…

int[] → ArrayTypeHandler

SQLクエリの結果から、int [ ]で受け取るための mybatis ArrayTypeHandler先日、PostgreSQL 再帰クエリの結果から、INTEGER型 配列を Integer[] で取得するものを 書きました。 oboe2uran.hatenablog.comInteger [ ] ではなくて、やはり、int [ ] で取得した…

ヘッダ有りCSV をPython で読む時(メモ)

読出し → 行 row[1:] スライスを for ~ in で処理する。例) name, point A, 3 B, 2 C, 1import csv import codecs with codecs.open('sampledata.csv', 'r', 'utf-8') as fp: reader = csv.reader(fp) row = [row for row in reader] for row in row[1:]: p…

PostgreSQL の再帰SQL→Array → mybatis で取得

先日の例、 PostgreSQL の再帰SQL で要素の連結結果を求める。 - Oboe吹きプログラマの黙示録 テーブル名:division id parent_id name 1 null A 2 1 B 3 2 C 4 2 D ここから、連結文字列の結果、id と name "1" "1,2" "1,2,3" "1,2,4""A" "A,B" "A,B,C" "A,…

Java祝日計算を修正、2019年対応

かなり昔に作って、何年もメンテしている 「Java祝日計算」 Java祝日計算 プロジェクト日本語トップページ - OSDNJava版の方で、2019年天皇即位など対応した static メソッドが、内部の enum を破壊するという とても恥ずかしいバグがあったので、修正し…

openpyxl で書く Excel セルの入力規則

最も簡単なサンプル~書き方を示すもの。 from openpyxl.worksheet.datavalidation import DataValidationdv = DataValidation(type="list", formula1='"A,B,C"') # 適用するセルの指定 dv.add(sheet.cell(1, 1)) # シートに入力規則を登録 sheet.add_data_v…

Python での Excel 読み書き

xlrd :読込みのみ。 xlwt:書込みのみ。しかも、*.xlsx は書けない。*.xls しか書けない。 1つのExcelに対して、読込み書込み両方の場合は、openpyxl を使うpip install openpyxl でインストールセル (cell) の行(row), 列(cols) の数え方は、1始まりであ…

Generic JsonDeserializer

先日、Gsonデシリアライザ ラムダで。 - Oboe吹きプログラマの黙示録 や、 Gsonデシリアライザ、汎用化? - Oboe吹きプログラマの黙示録 を書きましたが、 再考して、以下に至りました。 JsonDeserializer実装生成で目標のインスタンスの Supplier と JsonDe…

テスト用に作ったファイル読み込み

Java テスト用に作ったファイル読込み 以下のような static メソッドを書いて使い回してました。 public static String readText(String path) throws IOException{ try(InputStream in = new FileInputStream(path); ByteArrayOutputStream out = new ByteA…

PBKDF2ではなくSHA256で CryptoJS のAES暗合復号

Java と JavaScript 間の AES暗合 - Oboe吹きプログラマの黙示録 に書いたように、PBKDF2WithHmacSHA1 で実行する AES暗合も一計ですが、 単純に、SHA-256 ハッシュ&初期ベクトルを単純にハッシュ値から持ってくる方法も、 CryptoJS で書こうと思えば書けま…

Java と JavaScript 間の AES暗合

Java と JavaScript 言語間の暗合文や鍵の渡し方はいろんな方法あるので ここでは書きません。 相互での暗合復号の実際の実行を書いてます。 CBCモードで、PBKDF2WithHmacSHA1 です。 Java側JavaScript は、crypto-js を使います。 https://code.google.com/…

Java と Python の AES暗合復号

実運用を考えて、書き直しました。 AES のモードは、CBC ,パディングは、PKCS5Padding Java側 import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Arrays; import …

Base64 の正規表現

Base64 の正規表現 ってこれでチェックと、4で割り切れることかな。 ^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$

Gsonデシリアライザ ラムダで。

Gson のデシリアライザ、以下を用意すれば何でもリストをデシリアライズできる import java.lang.reflect.Type; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.function.Function; import com.google.gs…