JAVA関連のことを調べてみた2019年11月30日

JAVA関連のことを調べてみた2019年11月30日

SpringのLocalTimeをMySQLのTimeでINSERTしたい(millisecondsも)

## 概要

String型で取得した “`11:12:13.14“` (時間:分:秒.ミリ秒)を
MySQLにINSERTして
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33237/080f5da5-0b53-2f27-2bf1-80b2ce500196.png)
とミリ秒まで表示させる方法についてです。(日付情報はいらない)

***そんなの普通に実装すればできそうじゃない?***
って思うじゃないですか。

簡単そうに見えて面倒くさい処理を挟まないとうまくいきませんでした。。。
もっとスマートな方法をお存じの方がいましたら、教えていただけるととっても嬉しいです!!

## バージョン

### Spring

“`build.gradle
id ‘org.springframework.boot’ version ‘2.2.2.BUILD-SNAPSHOT’
sourceCompatibility = ‘1.8’

runtimeOnly(‘mysql:mysql-c

元記事を表示

AndroidStudioでFileInputStreamを使うときの文字化けについて

実機デバッグ時に文字列をメールアプリの本文に渡したら、文章の間に文字化け記号が挟まった。
#AndroidStudioの基本的な設定
ここを見る。

http://k-hiura.cocolog-nifty.com/blog/2015/07/androidstudio-b.html

##FileInputStreamで文字コードをUTF-8指定にする
文字化けするコード

“`
public String readFile(String fileName){
try {
FileInputStream stream = openFileInput(fileName);
byte[] buf = new byte[1024];
stream.read(buf);
return new String(buf);
} catch (FileNotFoundException e) {
e.printStackTrace();

元記事を表示

生成したjarファイルをEclipseでデバッグする方法

※Eclipse英語版が前提です。Pleiadesなど使っている場合は、適宜日本語に読み替えてください

#jarファイルをブレークポイントを使ってデバッグしたい場合の方法

## Eclipse側の設定
プロジェクトのフォルダ上で右クリックして、
Debug As > Debug Configurations…を選択

![スクリーンショット (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501968/2ef72079-dd8d-55ce-94d3-71b1bcb4809f.png)

Remote Java Applicationsでダブルクリック
設定画面が開くので、Host:localhost port:任意のポートで設定を保存
![スクリーンショット (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501968/00810a82-a6f3-da8a-cf94-f657e9e3de18.png

元記事を表示

JJUG CCC 2019 Fall スライド一覧

## スライド一覧
[JJUG CCC 2019 Fall](https://ccc2019fall.java-users.jp/)のスライド一覧です。

## スライド 10:00 – 10:45

### [試して学ぼう、Java EE アプリケーションをOpenShift(Minishift)でデプロイ!](https://jjug-cfp.cfapps.io/submissions/bc66034f-d71c-4ec2-91da-1e7d4071ee38)
– [Java-minishift-20191123](https://www.slideshare.net/osonoi1/javaminishift20191123)

## [Head toward Java 13 and Java 14](https://jjug-cfp.cfapps.io/submissions/cf294061-c8af-4dfd-9825-63b16ce09352)
– [Head toward Java 13 and Java 14 #jjug](https://www.slideshar

元記事を表示

GitHub Actionsでコードレビュー前にフォーマッタをかける

突然ですがJavaのコード、なにで書いてますか?

私見ですが、ショートカットキーが手に馴染んだIDEとそうでないIDEでは明らかに作業効率が変わる気がします。
「IDEが選べる」「PCが選べる」はエンジニア採用の現場でも売りとして扱われているようですし、実際選べない会社より選べる会社の方が嬉しい。
ただ、実際選べる環境に入ってみると、それはそれでこんな状況が起こりがち。

1. Eclipseで書かれたコードをIntelliJ愛用者が編集(逆もまたしかり)
2. 手癖でフォーマッタをかける
3. コードの差分が大変なことになる
4. レビューつらみ

フォーマッタはできれば統一したいところ。
一方で「ソースコードプッシュするときは、ビルドツールでフォーマットしてからにしましょう」とかルール化するのもそれはそれで面倒。
pre-commitのセッティングを各人にお願いしてもいいのですが、GitHub使ってるならそっちで勝手にやってくれれば楽なはず!

というわけで、設定してみました。
ビルドツールやフォーマッタはプロジェクトによって色々かとは思いますが、本記事ではGradle+Goog

元記事を表示

Java変数のvolatile修飾子とは?

# volatile修飾子の概要
– 変数に付与する修飾子だよ。場合によってはsynchronizedの代わりに使える。
– 以下が利用例。

“`Java
private static volatile int count = 0;
“`

# 役割1: キャッシュ値からの読み取りを禁止する
– マルチスレッドが使われている場合、各スレッドがフィールドの値をキャッシュすることがある。このキャシュの対象外にする役割(パフォーマンス向上のために、各スレッドが変数のコピーを用意するため、メインメモリの値に変更があると、スレッド内の値と乖離が発生する可能性がある)
– volatileつけると**この変数はメインメモリから読み込んでね**というお願いができる。

# 役割2: コンパイル時の最適化の対象外にする
– Javaのコンパイル時には無駄な評価をなくすように最適化が行われる。

“`
# 以下のようなコードは…
boolean flg = true;
while(flg){
System.out.println(“hello!”);
}

# 以下のように最適化さ

元記事を表示

Kotlinは何故便利なのか

## この投稿をした経緯

https://qiita.com/ngsmvn/items/b74328291d0b5342e407

長すぎ、読みたくないという人は、それぞれの節にまとめを付けているので、それだけでも趣旨は分かると思います。

## 何故Kotlinは便利なのか

何故Kotlinは便利なのかを一言でまとめると、**他の言語のいいとこどりをしているから**だと思います。

Kotlin in ActionというKotlinの開発者が書いた本にこうあります。

>We aren’t trying to advance the state of the art in programming language design and explore innovative ideas in computer science. Instead, whenever possible, we’re relying on features and solutions that have already appeared in other programming languages and

元記事を表示

Javadocを書こう

##javadocの重要性
コード上にコメントが書いてあると、すぐに何の処理が書いてあるのかわかりますよね
javadocを書いた場合、参照した先でもそのコメントがみられるので
javadocだけでどんな処理のものなのか把握でき、使えるというわけです

逆に、javadocを適当に書くと
そのクラスだったりメソッドが何をしてくれるのか把握できず、いちいちコードを解読しに行かなければならないので
シンプルに効率が悪いわけですね

複数人で開発するのが当たり前な現状、自分でない誰かが
自分の作ったものを使うことが当たり前なわけで
すなわち思いやりの心をもって書きましょうってことですね

##どこに書くのか
classとpublicメソッドには必須でしょうね
privateやprotectedはなんだろう、離れた場所で使うことあんまないならいらないのかも?って感じですかね
最終的にわかりやすければおーけーなのでは

##つまり何を書けばいいのか
あまり多く書きすぎても逆に見づらいでしょうし
少なかったら処理わかんないしで

何を参考にしましょうかと

公式でしょ

みんな大好き

元記事を表示

BeanとDIについて

***
– 依存性とDI
– 依存性とは
– DI(依存性の注入)とは
– 「依存している状態」とは
– 依存状態の問題点
– 依存性の解決
– Bean構成ファイル(XML)による解決
– ファイルの作成
– ファイルの編集
– タグの編集内容
– クラスの編集
– ApplicationContextとは
– インターフェース化する
– インターフェースの作成
– 作成/変更されたクラス
– 別のBeanクラスの設定
– Bean構成ファイル(XML)を用いない解決
– Bean構成クラスの作成
– クラスの編集
– AnnotationConfigApplicationContextとは
– アノテーションについて

***

##依存性とDI

###依存性とは
* それぞれのコンポーネントの固有の設定などを意味する

> ある程度の規模の開発を行う場合、汎用的な部品をコンポーネント化して利用することになります。このとき、特定のコンポーネントを作成し、設定する処理がコード内に直接書かれていると、後々面倒なことになります。

* 特定のデータや

元記事を表示

Eclipseプロジェクト(Maven)のアプリのURLを変更する。

もともとあったEclipseプロジェクトをMavenに変更したときに適当な名前を付けてしまったため、元のURLが変わってしまいました。
おかげでアプリがうまく動かない事象が発生したので:sweat_smile:、その解決策を備忘録として残してあります。

### 今回やりたいこと。

スクリーンショット (12).png

↑アプリを開いた際のトップページのURLが「localhost:8080/test1/」となっているところを「localhost:8080/docoTsubu2/」に直したい↓。

スクリーンショット (11).pngargs4j defaultを表示させない方法

## 概要
先日args4jを使っていて、以下のような現象に悩まされました。
defaultの部分が自動生成される。

“`java
-h (–help) : print usage message and exit (default: true)
-v (–version) : print version (default: false)
“`

## 解決策
API仕様を見たところ、withShowDefaultsというメソッドがデフォルトでtrueを返しているようなので、falseを渡してあげます。

“`java
ParserProperties parserProps = ParserProperties.defaults().withShowDefaults(false);
“`

“`java
-h (–help) : print usage message and exit
-v (–version) : print version
“`
defaultが表示されないようになりました。

## 参考
API仕様

元記事を表示

Mediatorパターン

**オブジェクト間のやり取りを集中化する**パターン。

Mediator …「仲介者」。

#Mediatorの働き
密結合 → 疎結合。
 ∟ Mediatorを介して、オブジェクトを**完全に分離**する。

##利点
– Mediatorがサポートするオブジェクトをシステムから分離することにより、そのオブジェクトの再利用性が向上する。

– 制御を集中化することで、システムの保守性が向上。オブジェクトのやり取りが簡素化。

##欠点
– 設計を間違うと、Mediatorオブジェクト自体が複雑になる

元記事を表示

Ecllipseのエラーの件

コードを書いて実行すると、問題が検出されましたとのウィンドウが開き、

下記のメッセージが表示されます。

org.eclipse.epp.logging.aeri.ide

解決方法ご教授願います。

元記事を表示

dbunit 2.6.0ならpoiは勝手に入ってくる

雑なメモ

dbUnitでxlsxからテストデータ流すぞってときには、2.6.0を使うと、dbUnitの中で必要なPOIとかのDependency書いててくれるから、自分では特に書かなくていい。

元記事を表示

自主勉1日目

はじめに言っておかなければいけないのは、
「いくら良い先生がついたところで、わたしのポンコツ具合は変わらない」
ということだ。

いつも「なに考えてるのかわかんない」と言われる謎回路変換がかかっているので、間違いもあるかもしれない。
しかし出力しないと気づかないので、それも含めて勉強していきたいと思う。

テキストは『スッキリわかるJava入門』
https://book.impress.co.jp/books/1113101090
ほかの本は見たことがなく、比較できない。
ちなみに、JVM君のイラストがめちゃくちゃかわいいので、個人的には100点。

1章を見返してみたけど、もうfinal(+大文字)で定数とか、そういえばあったな状態になってて怖い!
そのくらい何も知らないところからのスタートなのは、いつも通りだけど。

今日はここまで。

元記事を表示

Jetty のログを任意のディレクトリに出力する方法

# 概要

軽量Webサーバーの[Jetty](https://www.eclipse.org/jetty/)では以下の2つのログファイルが出力されます。

* 標準出力/標準エラー出力
* アクセスログ

これらのログファイルはデフォルト状態では `jetty.base` プロパティで指定されたディレクトリ直下の `logs` に出力されます。

Jettyのリファレンス [Default Logging with Jetty’s StdErrLog](https://www.eclipse.org/jetty/documentation/current/default-logging-with-stderrlog.html) や [Configuring Jetty Request Logs](https://www.eclipse.org/jetty/documentation/current/configuring-jetty-request-logs.html) を参照しましたが、出力先を任意のディレクトリに変更する方法が分かりにくかったので本記事でまとめました。

# 内容

元記事を表示

Java暗号化、Word文書の解読

いくつかの重要な文書に対して,文書の内容が漏れないように保証します,常にファイルを暗号化する必要があります。ファイルを表示する時,パスワードを正しく入力してからファイルを開く必要があります。 本論文では、Word文書に対してSpire.Doc for Javaを使ってパスワード保護を設定し、パスワードを削除する方法を紹介します。

【示例1】Wordパスワード保護設定

“`java
import com.spire.doc.Document;
import com.spire.doc.FileFormat;

public class EncryptWord {

public static void main(String[] args) {

// Word文書を読み込む
Document document = new Document();
document.loadFromFile(“sample.docx”);

// パスワードで文書を保護します
document.encrypt(“

元記事を表示

Sourcetrail(win版)をJavaコードで使ってみる

#Sourcetrail(win版)をJavaコードで使ってみる

https://qiita.com/cloudsnow/items/7d7f3b859186667379ef

macOS版を参考にしてやってみました。

最終確認してCreateを選択までしたのですが動作しなかったのでどこがおかしいか調べてみると
)

Editにあるpreferencesを開くとjava Path(64Bit)のアドレスパスが違ったので
“C:/Program Files/Java/jdk1.8.0_102/jre/bin/server/jvm.dll”に変更したら動作しました

元記事を表示

stream中にエラーハンドリングできなくてこまるやつ

##例外catchしてくださいって怒られるやつ

ぐぬぬ一行で書けない…

っていうのをどうにか綺麗に書くためのやつです

##準備
“`準備.java
/** ——————–準備——————– */
/** 例外を投げるインターフェース */
private static interface Throwable {
S apply(T t) throws NullPointerException, NumberFormatException, Exception;
}
/** 例外に応じて実行する関数を切り替えるメソッド */
private static Function switchFunction(Throwable tf, BiFunction npe,
BiFunction nfe, Function other) {
return v -> {

元記事を表示

Java Artery-数値配列の処理-集約(最大値、最小値、合計、平均、標準偏差)、変換(移動平均、変化率など)、ヒストグラムなど

目次 ⇒ [Javaアルゴリズムライブラリ-Artery-サンプル](https://qiita.com/artery/items/6ae578a6665457db4511)

#概要

ArMathには計算処理のメソッドが集められている。その中から配列に関係するものを紹介する。本稿の内容は次の通り。

・関連enum、インターフェースの説明
・集約処理-最大値、最小値、合計、平均、標準偏差
・変換処理-指定数値との加減乗除
・変換処理-指定ロジックによる変換
・変換処理-移動平均、変化率など
・二つの配列の合成-二つの配列の値の加減乗除
・二つの配列の合成-二つの配列の値の計算(ロジックは外部指定)
・ヒストグラムの作成-境界値は直接またはArValidatorで指定する
・おまけ(逆順とランダマイズ、Map・二次元Map上の数値の加減乗除)

ラッパー型配列とプリミティブ型の配列を変換することが必要だったりするが、(紹介はしないが)このようなメソッドも含まれている。一次元配列と二次元配列の変換もできる。

なおArListには、ここに示したようなメソッドが用意されているが、ArL

元記事を表示

OTHERカテゴリの最新記事