Java

mybatis xml設定ファイル使わない場合の補足

mybatis xml設定ファイル使わない場合の方法として まとめたが、、 mybatis XML設定を使わない場合 - Oboe吹きプログラマの黙示録接続設定をXMLに記述しないとしても、 やはり複雑なSQLをアノテーションに記述しては読みにくいので、 SQL文は、SQL Map…

Java Bean のコピー(2)、 Snake case ⇔ Camel case

昨日投稿の、Java Bean のコピー(1)、 Snake case ⇔ Camel case - Oboe吹きプログラマの黙示録 は、コピー先に Camele ⇔ Snale 対応の同じ型フィールドが存在しなくても属性値コピー生成する方法だ。 でも、厳しく、機能上より優れてる以下の属性値コピー…

Java Bean のコピー(1)、 Snake case ⇔ Camel case

Field 属性が、Snake case で記述された Java のオブジェクト(Bean)と Camel case で記述された Java のオブジェクト(Bean) 相互に値をコピー生成する方法、 つまり、Snake case で記述されたフィールド属性値を対応する Camel case で記述されたフィー…

Java で、Snake case ⇔ Camel case

先日、Python で処理する Snake case ⇔ Camel case を書いた。 Python で snake case → camel case - Oboe吹きプログラマの黙示録Python で camel case → snake case - Oboe吹きプログラマの黙示録では、Java の場合、これもネット検索すると沢山いろんな方…

Java13 新機能の Text Blocks

これで、mybatis のアノテーションで書くSQLステートメントも書き易く、見やすくなるかも。。。 まだ試してないけど。。。 openjdk.java.net

mybatis XML設定を使わない場合

mybatis のスタートガイド https://mybatis.org/mybatis-3/ja/getting-started.html に書いてあるのは、どういうDatasource を用意すれば良いのか明記されてなくて ちょっと不親切と思っていた。 org.apache.ibatis.datasource.unpooled.UnpooledDataSource …

Map entrySet() から、GenericBuilder → Fieldsetter Streamで集約してインスタンス

Map<String, Object> に、クラスの属性名と値が格納されているとして、 Map entrySet() → Stream の collect で、Fieldsetter 実行してインスタンスを生成ここで使用するものは、 https://github.com/yipuran/yipuran-core/wiki#genericbuildert と、 https://github.com/yip</string,>…

関数型インターフェースで実行する Fieldgetter

昨日、Fieldsettter のことを書いたので、 Fieldsetter は、public でも private でも使用できる - Oboe吹きプログラマの黙示録それならば、getter も同様に書いてみた。 import java.io.Serializable; import java.lang.reflect.Field; import java.util.fu…

Fieldsetter は、public でも private でも使用できる

yipran-core として作成した GenericBuilder Wiki に、 setter が存在しない public フィールドの時、 と setter が存在しない private フィールドの時、 GenericBuilder#with メソッドの書き方の差を書いてしまったが、 実は、org.yipuran.util.Fieldsette…

キー入力の連続

1年前に、標準キー入力させるのに、java.util.Scanner を使用した例を書いた。。。 oboe2uran.hatenablog.comこんなメソッドを用意して使うのもいいが、 public static String keyIn(String guide){ System.out.print(guide); try(Scanner scan = new Scann…

Apache POI でExcel 日付読込み

久々に JavaでExcel を読込む apache POI を使う。 try(InputStream is = new FileInputStream("sample.xlsx"); XSSFWorkbook book = new XSSFWorkbook(is)){ XSSFSheet sheet = book.getSheetAt(0); XSSFRow row = sheet.getRow(2); XSSFCell cell = row.ge…

Stream で処理する正規表現

Java8 でも使えるように書いてみた。。昨日の、 正規表現マッチのストリーム処理を考察 - Oboe吹きプログラマの黙示録 に続いて、思いついたので、まとめてみた。 import java.util.Iterator; import java.util.Spliterator; import java.util.Spliterators;…

正規表現マッチのストリーム処理を考察

Java8 では、正規表現で分割 split したストリームは取得できるけど、 java.util.regex.Pattern の splitAsStream(CharSequence input) ⇒ Stream<String> マッチした文字列のストリームは標準では提供されていない。自然に Matcher の find() 実行ループをメソッドに</string>…

Python dictionary → Java Map

Python dictionary を 標準出力してJavaでMap として読み込む。先日書いたものの勢いにまかせて、、、Python 標準出力→Java受け取り - Oboe吹きプログラマの黙示録Javaからプロセス起動で実行するPython と文字列の受け渡し - Oboe吹きプログラマの…

Python 標準出力→Java受け取り

先日書いた中の Python 標準出力→Java受け取りは、 Javaからプロセス起動で実行するPython と文字列の受け渡し - Oboe吹きプログラマの黙示録 リストを長い正規表現で解析する方法でこれでは、ちょっと効率が悪そうで 汚いコードである。 b' ' などとPyt…

InputStream transferTo

先日の oboe2uran.hatenablog.comJava9 以上なら、 java.io.InputStream.transferTo(OutputStream out) throws IOException 使えば、 List<String> list; // list に送信するものを入れてから try(ByteArrayOutputStream out = new ByteArrayOutputStream()){ Script</string>…

Javaからプロセス起動で実行するPython と文字列の受け渡し

Javaプログラムとプロセス起動したPython 間で標準入出力を介して文字列を受け渡しをする。 Python は内部処理の文字コードが Unicode のせいか、 受け渡しの文字列は Unicode でなければ、双方で受け取れない。Pythonスクリプトの用意 標準入出力実行は、メ…

Java8 で、Matcher の Stream

先日の Unicode 文字列ーUTF-8変換をする処理メソッドを整理 これを Java 8 でも動くようにするには、 2年前に書いた、MatchResult の Stream を使うしかないであろう。 oboe2uran.hatenablog.com↑の MatcherStream を使用して、先日の Unicodes の public …

Unicode 文字列ーUTF-8変換をする処理メソッドを整理する。(Javaで)

過去、Unicode 文字列を変換する処理を書いたが、https://github.com/yipuran/yipuran-core/blob/master/src/main/java/org/yipuran/util/StringUtils.javahttps://github.com/yipuran/yipuran-core/blob/master/src/main/java/org/yipuran/util/SJutil.java…

画像バイナリデータからMIMEタイプを判定する。

Java で、画像バイナリデータ byte[] の状態のデータから image/jpeg などのタイプを調べます。 画像 File であれば、java.nio.file.Files の probeContentType(Path) を使えば良いのですが、 バイナリデータの状態から検査したい場合が稀にあるでしょう。デ…

AjaxFileDropBehavior 利用をラムダで書くようにする

先日の Python 画像加工結果→Javaで受信→WebPage表示 - Oboe吹きプログラマの黙示録 僅かだがスマートに記述するために、Throwable で Serializable な BiConsumer を用意して AjaxFileDropBehavior の継承を用意しました。 Throwable で Serializable な Bi…

Python 画像加工結果→Javaで受信→WebPage表示

画像URL → Python 処理に渡す。。。 → Python PILLOW で画像加工 → 結果をPython 実行の標準出力で出力 → この Python 処理を Java のプロセス起動で実行して 結果標準出力をストリームで受け取る。 → Webページで表示 という流れのシナリオで一切画像ファイ…

Python標準入力と Java

改行で標準入力→リストで取得の Python スクリプト、改行2回で標準入力が完了するスクリプト stdio.py # -*- coding: UTF-8 -*- import sys class Stdio: # 標準入力 @staticmethod def input(): inlist = [] try: while True: i = input('') if i=='':brea…

Java→Python Pdfkit実行→PDF受け取る

Wicket で、Python Pdfkit実行してPDFダウンロードさせる方法を考えました。 このメリットは、 ・作成するPDFが、PdfkitがHTMLからPDFへの変換であることから WicketでブラウザにWeb Page 表示してPDF作成イメージを確認できること。 ・HTMLでPD…

Google gson MalformedJsonException のパターン

Google gson で JSON読込みした時に発生する MalformedJsonException のパターンとは、以下の表にまとめることができる。 エラーのパターンは、これ以外あるかもしれないが、だいたいこんなところ。 例外のメッセージ エラーの意味 JSONエラーの例 Untermina…

Chart.js Time グラフの為のデータJSONを作成するクラス

Chart.js https://www.chartjs.org/ X軸=時刻 の線グラフを描画するためのJSONデータ作成する Java クラスを作成して、AJAX通信によるJSONデータ → Chart.js グラフ描画をデザインを除いた 可変の JSONデータ生成だけでも汎用的にならないかと考えました。…

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…

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 の方で公開…