2020-01-01から1年間の記事一覧
以前、リストの重複チェックとして、 oboe2uran.hatenablog.com を書きました。ここに書いたのは、全てユニークだったら true であり Boolean#logicalAnd を利用したものでした。では、重複だったら true を返すCollectors にしたい場合は、、 logicalXor を…
昔、書いておいたが、 カナ正規表現 - Oboe吹きプログラマの黙示録 Unicode で書く正規表現全角カナ: ^[ァ-ー]+$ 全角かな: ^[ぁ-ゟー]+$ 全角かな(長音含めない): ^[ぁ-ゟ]+$ 半角カナ: ^[。-゚]+$全角カナ: ^[\u30A1-\u30FE]+$ 全角かな: ^[\u3041-\…
build.gradle に、次の記述を追加する。 test { exclude '**/*' }
try-with-resources 文で、PrintWriter pw = new PrintWriter(System.out) を書いて、 try-with-resources文の finally を実行した後ろで、System.out.print を実行しても 既に close しているのだから、print / println は機能しない。でも、再度、System.o…
Google gson の JsonWriter の setIndent の方法ではなく、gson インスタンスを生成する前の GsonBuilder で、setPrettyPrinting を実行する方法、既に存在するJSON 文字列から、整形する場合。文字列→整形した文字列 String json = "{\"a\":\"A\",\"b\":[10…
yipuran-gsonhelper/JSonValue.java at master · yipuran/yipuran-gsonhelper · GitHubを使用して、プリントする import com.google.gson.Gson; import com.google.gson.GsonBuilder; import org.yipuran.gsonhelper.JSonValue; try(InputStream in = new Fi…
https://json-schema.org/ が示す JSOMスキーマによるバリデーションチェックは、 わざわざ、スキーマ記述ルールで書いたスキーマのJSONを用意して、 バリデーションチェックを実行する。→ 記述ルールを憶えるのが面倒くさい。書式サンプルなるJS…
自分が書いたプログラムコードを置いた Git-hub で、Arctic Code Vault Contributorなる、星形のマークがついている。北極点の保管庫送りだと!、馬鹿にしてるのか讃えてるのか、わけわからん。。。archiveprogram.github.com
JSON schema の Draft 7 JSON Schema Draft-07 Release Notes | JSON Schema に沿ったバリデータを探していて、 JSON schema を生成するのに、Python でというのは、よくあるアーキテクトと思うが、、 今更、Jython ?。。。天下のOracle のページで目にした…
昨日書いた YAML に追加で、、、 https://oboe2uran.hatenablog.com/entry/2020/07/24/124904 以下のように、clist キーに配列がある場合、 address: group: info1: A info2: 120 clist: - 21 - 22 - 23 aaa: bbb: ABC この clist を読むための List を、@Va…
YAML を読む処理を JUnit テストする時、( Spring Batch での話 ) @ContextConfiguration で、イニシャライザ指定 initializers = ConfigFileApplicationContextInitializer.class を付けるだけでなく、 @EnableAutoConfiguration が必要 例) application…
コネクションPOOL に HikariCP を使用した mybatis の接続 【再興】mybatis XML設定を使わない場合 - Oboe吹きプログラマの黙示録 のパターンで書いてみる。HikariCP 3.4.5 <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>3.4.5</version> </dependency> mysql-connector-java 8.0.21 <dependency> <groupId>mysql</groupId> </dependency>
過去に、 mybatis XML設定を使わない場合 - Oboe吹きプログラマの黙示録mybatis xml設定ファイル使わない場合の補足 - Oboe吹きプログラマの黙示録と書いたが、SQLMap の XML も書かないで、SQL文もアノテーションで済ませたい。mybatis 3.5.2 mysql-connect…
久々のSpringBoot バージョン は、2.3.1 mybatis-spring-boot-starter Version : 2.1.3 を使い、 mysql-connector-java Version: 8.2.20 を使って、MySQL に接続する。Spring の アプリケーション起動していきなり、 java.sql.SQLException: The server time…
半角カナ文字を含む半角文字のみの正規表現を否定形にすれば、 全角文字のみの正規表現になる。 半角文字のみの正規表現(半角カナ文字を含む) ^[ -~。-゚]+$全角文字のみの正規表現 ^[^ -~。-゚]+$
先日書いた、 oboe2uran.hatenablog.comこれでは、ダメだ エスケープする文字列が残らない。 だいたい java.util.StringTokenizer なんて古いものは、すでに奨励されていない。 char 型で処理する public static List<String> tokenToList(String str, char sep, cha</string>…
https://dev.classmethod.jp/articles/aws_s3_getobject_error/https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/RetrievingObjectUsingJava.htmlS3Object object = s3Client.getObject(new GetObjectRequest(bucketName, key)); InputStream objectD…
フラットに属性が並んだオブジェクトから、階層のあるJSON への変換(2) - Oboe吹きプログラマの黙示録 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ これは、1階層のグルーピングしかサポートしない。 もっと階層が深い場合は、同じ処理ロジックのシリアライザではだめだ。 そ…
フラットに属性が並んだオブジェクトから、階層のあるJSON への変換(1)の続き。属性フィールドに、グルーピング名をアノテーションで付与することで、この処理を汎用的に行う シリアライザを考えた。 public class Sample{ public String title; @Groupin…
フラットに属性が並んだオブジェクト → 階層構造オブジェクト → JSON という流れで処理するのは、階層構造オブジェクト の定義クラスを設計、配置するこのやり方は 非常にナンセンスと思う。 階層構造オブジェクト の定義クラスの存在無しで処理したい。Goog…
String の split(String regex) は、頻繁に良く使われるメジャーなメソッドである。 でも、区切り文字(デリミタ)に対してエスケープがあり、エスケープ文字を考慮して split でリストを求めたい。 サンプル文字列 「$.aaa.\.bb\.bbb.cc\.\.c.\.\ddd\..ee\\…
Google gson の toJson と JsonWriter は、どちらか一方を使うことが多かった。 toJson(Object src, Type typeOfSrc) だけでなく、 toJson には、JsonWriter に結果を書き込むメソッドも用意されている。JsonWriter で書きながら、途中で任意のクラスオブジ…
昔、MySQL で、複数のTIMESTAMP で DEFAULT CURRENT_TIMESTAMP を宣言しようとして、 DELIMITER // DROP TABLE IF EXISTS branch; // CREATE TABLE branch ( id INT NOT NULL AUTO_INCREMENT , branch_name VARCHAR(64) NOT NULL , created_at TIMESTAMP NOT…
MySQL AUTO_INCREMENT がMAXを超える時、どんなエラーコードだっけ? と忘れていたので、簡単に用意して実行した結果は、INSERT の発生させる AUTO_INCREMENT のエラー Error Code: 1062. Duplicate entry '2147483647' for key 'PRIMARY' INTのMAX 21474836…
Google gson で、@JsonAdapter と、GsonBuilder の registerTypeAdapter で指定するアダプター どちらが優先されるか?@JsonAdapter が、優先される。 oboe2uran.hatenablog.com
@Expose GsonBuilder で、excludeFieldsWithoutExposeAnnotation() を指定すれば、 @Expose が付いたフィールドだけシリアライズする Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation() .create(): @SerializedName フィールド名でなく…
随分前に、MySQL の UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT のメモを書いていた。 https://oboe2uran.hatenablog.com/entry/2018/02/01/160016 CREATE TABLE branches ( id INT(4) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT , branch_name VARCHAR(60…
limit を使わずに Stream 止め方には、トリッキーではあるが、 filter(Predicate) 、findAny() で止めるか、anyMatch(Predicate) で、止める方法がある。 Stream.iterate(1, i->i+1) .peek(System.out::println) .filter(n->n > 9) .findAny(); これの findA…
Google Gson の場合、大きなサイズの JSON を出力、gson の toJson では一度作成元 Object を持ってしまうので、 大きなサイズの JSON は toJsonでは不向きである。 大きなサイズのJSON を出力をする場合、JsonWriter を使う。例) OutputStream out = // TO…
Java で案外、これを問われると簡単なようですぐに出てこない。 結果、boolean 値とする。 文字列にして小数点(.)文字を検証する方法 double d = 13.02; boolean flg = Long.parseLong(String.valueOf(d).substring(String.valueOf(d).indexOf('.')+1))==0…