2023-01-01から1年間の記事一覧
標準キー入力による簡単なサンプル受信サーバーソケットプログラム 同時複数接続を可能とするために、accept() で接続した Socket は、子スレッドで close する。 import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.Socket…
良く記述するパターン、 パラメータ変数 String type; に対して、、 WHERE 1=1 <if test="type == null"> AND id = #{id} </if> <if test="type != null"> 文字列比較:空文字 <if test="type == ''"> 文字列比較:任意 <if test="type == 'A012'"> 以外にもあまり書かないパターンで、 パラメータ変数の型が boolean なら、 boolean flg であれば、 <if test="flg"> で、flg = true</if></if></if></if>…
Stream の reduceで文字列を長さで分割 - Oboe吹きプログラマの黙示録 を書いた時、応用すれば長いコードを書かなくても済むのでは?と思いました。 解析対象の固定長フォーマットの文字列、長さ 4,2,6,14 の文字列長の連結 String str = "uranA1 9812023031…
今時、電文など固定長文字列でデータ設計するところは少ないであろう。 文字列の長さ、(4, 2, 6, 6) と4個の並びであるとして、18の長さの文字列を分割するのに、 Stream の reduce を使うと、わりとスマートに書ける。 List<String> list = new ArrayList<>(); L</string>…
Java16 から使える Stream の mapMulti mapMulti(BiConsumer> mapper) flatMap と何が違う、使いどころがすぐに思いつかなかったが、メソッドの説明のサンプルで、 なるほど便利と思うのが書いてある。 ネストされているリストを、1つのStream にする。 cla…
instanceof 後のcast する鬱陶しいのを回避で、よく紹介されますが、 if (obj instanceof String) { String s = (String)obj; // String s の処理 } if (obj instanceof String s) { // String s の処理 } 次のように、総称型の配列を List に変換するのに使…
Windows10 の話です。 リモート会議などでUSBのヘッドセットを使うとPCのサウンドは、 というドライバになって、外してその後、電源OFF→起動後、 イヤホンジャックに、イヤホンまたは、イヤホンタイプのマイクを差し込んでも 認識しないことがある。以下の操…
SqlSession session = new SqlSessionFactoryBuilder() .build(Resources.getResourceAsReader("mybatis-config.xml")) .openSession(); SqlSession openSession(boolean autoCommit); SqlSession openSession(Connection connection); SqlSession openSessi…
Eclipse で検索などをしてファイルを開いた後、パッケージエクスプローラーやプロジェクトエクスプローラーで 場所を開いたい時があります。どうするか? パッケージエクスプローラーやプロジェクトエクスプローラーの右上をクリックして、 エディタにリンク…
java.io.Console を使って、標準入力を簡単に書こうと思ったのだけど、 Console console = System.console(); String s = console.readLine(); Eclipse の実行では、System.console() が、null を返して NullPointerExceptionThis is a bug #122429 of eclip…
古い Java の方法でなく、簡単に String をファイルに書く。 Java11 以上なら、、 import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardOpenOpti…
openjdk.orgswitch 文式で、String , int , enum 以外の判定で魅力的なのですが、 static String formatterPatternSwitch(Object o) { return switch (o) { case Integer i -> String.format("int %d", i); case Long l -> String.format("long %d", l); cas…
logback 環境変数で出力先やログレベルを指定する。 - Oboe吹きプログラマの黙示録 は、1つの logback.xml を準備して環境変数で環境別に設定の方法であるが、 環境別の logback.xml を用意する方法で Mavenビルド時に、使用環境に合わせたビルド成果物にす…
logback.xml に、環境変数の値を適用させるには、 ${ 環境変数名 } の記述方法で指定する。 ログ出力レベル <logger name="org.labo"> <level value="${LOGLEVEL}" /> <appender-ref ref="FILE" /> </logger> 環境変数名 記述 設定 LOGLEVEL ${LOGLEVEL} "debug" 、"info" などを指定する ログ出力先、ログパターン <configuration> </configuration>
よく見かける方法は、実行するスクリプトでファイルを生成してそのファイル存在チェックで 判定する方法を見かけるが、シェルが途中でハングアップした場合など起動できなくなる。 シェルコマンドのプロセスIDをチェックする正当な方法にすべきだ。pgrep の…
Java16 から、Stream に、toList() ってできるようになってたんだ。Stream から、collect(Collectors.toList()); と書いていたのが、スッキリ toList() と書ける。
build で、resource として指定する。 <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.0</version></plugin></plugins></build>
JSR-310 java.time.LocalDateTime で、ナノ秒まで表現できる。となったものの 実際OS依存で環境によって、本当に1ナノ秒まで取得できるわけではない。 Windows PCであれば、100ナノ以下は結局、00 であった。 LocalDateTime から java.time.format.DateT…
profile を指定して、ビルド対象リソースを切り替える通常のビルド対象リソース src/main/resources/application.propertiesprofile 名=develop として develop のビルド対象リソース src/main/resources-develop/application.propertiesと用意されている。…
SpringBoot 環境毎で切り替える方法をまとめた情報のリンクを並べていく、Spring Boot コア機能 - リファレンスドキュメント Spring Profilesで環境ごとの設定ファイルを読み込む(SpringBoot2.4の変更も記載) - きり丸の技術日記 Spring Bootでapplication…
.gitignore に後から除外設定をした時に、対象を削除しても追跡が続いてしまいます。git rm --cached filenameでインデックスを消しましょう。
今更、JUnit4 → 5 の差異のメモです。 未だに JUnit4 を使い続けてるプロジェクトも多いのですが、 JUnit5 の例外のテストは、変わったのを改めてメモ、どこにでも解説があるので、 なんで、今さら。。。とは言え、書き留めます。JUnit 4 では、、 @Test(exp…
オンラインWebでブラウザで操作できるサービスを公開してくれてるものがある。https://sqlformat.org/Python で処理されている。GitHub - andialbrecht/sqlparse: A non-validating SQL parser module for Pythonドキュメント https://sqlparse.readthedocs.…
DBeaver SQLエディタで、SQLを整形したい時は、Ctrl +Shift + fで整形できる
Maven Central repository や、他の公開リポジトリに存在しなくて、自プロジェクトで抱えて pom.xml で指定する方法maven-install-plugin を使う例)プロジェクトの直下に、lib というフォルダを用意して JAR を置いた例${project.basedir}/lib/custom-1.2.j…