2018-04-01から1ヶ月間の記事一覧

【SQL】 自己相関サブクエリ でパフォーマンスが悪かった話とその解決策

■ はじめに 自己相関サブクエリ でパフォーマンスが悪かったので その際の解決策などを記録する 目次 【1】現象 【2】動作環境 【3】パフォーマンスが悪かったSQL文 【4】原因 【5】解決案 1)インデックス追加 2)SQL文変更 【1】現象 * 50万レコー…

【Java】【Velocity】JARファイル内のリソースファイルを開いてApache Velocityを使って文字列取得

■ はじめに https://blogs.yahoo.co.jp/dk521123/37497699.html で、JARファイル内のリソースファイルのパスは 「jar:file:/C:/XXXX/SampleDemo-1.0.0.jar!/Sample.vm」のようになる。 しかし、直接ストリームとしてオープンすることは可能なので そのサンプ…

【Java】DB Connection Pool ~ HikariCP / 基本編 ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/37397210.html の続き。 ■ 使用上の注意 * HikariDataSource#close() は、システム終了後にコールすること ★ 重要 ★ * HikariDataSource#getConnection()から得たコネクションについては、使用後即 close() …

【Gradle】Gradle ~あれこれ編~

■ ビルド時にテストを実行しないようにするには サンプル gradle build -x test 参考文献 http://anton0825.hatenablog.com/entry/2014/11/19/000000 ■ ファイル内の特定文字列を置換する * org.apache.tools.ant.filters.ReplaceTokens を使う フォルダ構成…

【トラブル】【Java】MySQLのJDBCドライバを v5.1.X から v8.0.X に上げた時のトラブル

【1】MySQLのJDBCドライバを上げたらエラー「The server time zone value」になる 現象詳細 MySQLのJDBCドライバを v5.1.46 から v8.0.11 にあげたとこと、 以下の「エラー内容」になる build.gradle 修正前 (現象発生なし) dependencies { // MySQL compil…

【Raspberry PI】ラズパイの Wi-Fi に関するあれこれ

■ ラズパイの Wi-Fi * Wifi通信規格:IEEE 802.11 b/g/n 2.4 GHz => Raspberry Pi 3 Model B+ (2018年3月14日)だと「2.4GHz and 5GHz IEEE 802.11.b/g/n/ac」 https://ja.wikipedia.org/wiki/Raspberry_Pi Wi-Fi通信規格 * Wi-Fi : Wireless Fidelity (フィ…

【JUnit】 AssertJ / AssertJ-DB ~ 基本編 [1] / DBデータの比較について ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/36157721.html の続き。 今回は、時間以外のDBデータの比較について扱う。 なお、時間に関する比較は、以下の関連記事を参照。 AssertJ / AssertJ-DB ~ 基本編 [3] / 時間に関する比較 ~ https://blogs.yah…

【Java】 Java での リソース の扱いについて

■ はじめに Javaアプリを作成する際に、 log4j 2の設定ファイル「log4j2.xml」(以下の関連記事を参照) https://blogs.yahoo.co.jp/dk521123/37495975.html や Velocity 等のテンプレートファイル XXXXX.vm (以下の関連記事を参照) https://blogs.yahoo.c…

【Java】【log4j2】log4j 2 ~ 入門編 ~

■ はじめに AWS/Lambda の Java のロギングについて、調べたところ https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/java-logging.html ~~~~~~~~~ Log4j™ 2 のカスタム Appender AWS Lambda は、Log4j 2 を使用してカスタム Appender を提供す…

【Shell】Javaを実行するシェルスクリプト

■ はじめに Java を実行するシェルスクリプトをメモ。 目次 【1】Javaのclassファイルを実行する 【2】実行可能JARファイルを実行する 【1】Javaのclassファイルを実行する サンプル #!/bin/bash # 【オプション】環境変数 export JAVA_HOME=/usr/local/j…

【SQL】複数の集計を1回のSQL文で行う方法を考える

SQL

■ はじめに 例えば... 全体数とその母数からさらに条件を付けてカウントしたい場合に それをサブクエリを使わずに、一回で行う方法を考える 目次 【1】解決案 【2】サンプル 【1】解決案 COUNT (条件 OR null) でカウント可能。 【2】サンプル * 全体数…

【SQL】初めの数文字が一致してたら同一データと見なすSQLを考える

SQL

■ はじめに 初めの数文字が一致してたら同一データと見なし、 重複を排除するSQL文を考える 目次 【1】解決案 【2】サンプル 【1】解決案 以下を使えば可能。 * サブクエリ * LEFT() * GROUP BY 【2】サンプル * DB : MySQL5.7 テーブル CREATE TABLE `m…

【Docker】 Docker ~ Linux / 環境構築編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2017/09/23/235818 の続き。今回は、Linux。 目次 【1】設定環境 【2】構築手順 1)Docker のインストール 2)Docker の起動及び自動起動 3)docker を sudo なしで実行できるように設定する 【1】…

【Java】 PowerMock ~ 入門編 ~

【1】公式サイト https://github.com/powermock/powermock 【2】初期設定 * Gradleを使う build.gradle dependencies { // PowerMock testCompile group: 'org.powermock', name: 'powermock-module-junit4', version: '1.7.3' testCompile group: 'org.po…

【Ansible】Ansible ~ 基本編 ~

■ はじめに https://dk521123.hatenablog.com/entry/2018/03/01/225732 https://dk521123.hatenablog.com/entry/2020/02/02/000000 の続き。 今回の目的 [a] ホスト(管理マシン)から ansible を実行することにより、 ゲスト(構築サーバ)に Apache を入れる …

【MySQL】 GROUP BY句での論理演算 ~ BIT_OR() 等 ~

■ はじめに * テーブルのBOOL(BIT)項目に対して、GROUP BYした後に論理演算 OR をしたかったので調べてみた 【MySQL】解決案 * BIT_OR() ってのがある 公式サイト https://dev.mysql.com/doc/refman/5.6/ja/group-by-functions.html ■ 実行環境 * DB : MySQL…

【トラブル】PowerMock に関するトラブルシューティング

■ エラー「MissingMethodInvocationException」が表示される * テストを実行した際に、以下の「エラー内容」が表示される エラー内容 org.mockito.exceptions.misusing.MissingMethodInvocationException: when() requires an argument which has to be 'a m…

【トラブル】【Java】JDBC ドライバ絡みのトラブル

【1】「SEVERE: A web application registered the JDBC driver...」が表示される * Tomcatのログを見たら、Tomcat終了時に以下の「エラー内容」が表示された エラー内容 SEVERE: A web application registered the JDBC driver [com.mysql.jdbc.Driver] bu…

【JUnit】【Mail】 Email送信に関する単体試験について ~ SubEthaMail編 ~

■ はじめに https://blogs.yahoo.co.jp/dk521123/36257589.html の続き。 今回は、「SubEthaMail」を試す。 ■ 設定 * Gradleを使う build.gradle dependencies { // Use JUnit test framework testImplementation 'junit:junit:4.12' // SubEthaMail testCom…

【JUnit】 JUnit で環境変数を変更するテストを行うには...

■ JUnit で環境変数を変更するテストを行うには... 以下の2つの方法がある 【1】System Rulesを使う http://stefanbirkner.github.io/system-rules/ 【2】PowerMockを使う 【1】System Rulesを使う ■ 設定 http://stefanbirkner.github.io/system-rules/d…

【Java】Java で 複数 INSERT を実行する

■ はじめに * Java で 複数 INSERT を実行することを考える => 色々な方法があるが、パフォーマンスがよく、実装しやすいものがいい ■ 実行環境 * OS : Windows10 * DB : MySQL5.7 ■ テストデータ CREATE TABLE `person` ( `id` BIGINT(20) NOT NULL AUTO_IN…

【SQL】 LIMIT ~ 出力する行数を制限する ~

【1】LIMIT * 出力する行数を制限する * PostgreSQL や Snowflake でも使えるみたい 【2】構文 SELECT [項目1] (, ...) FROM [テーブル名] LIMIT ([開始位置(行数],) 取得する行数 【3】サンプル SELECT * FROM user LIMIT 5 1)出力結果 "1" "1" "Kim"…