JAVA関連のことを調べてみた2020年05月14日

JAVA関連のことを調べてみた2020年05月14日

Apache Camel Spring Boot starters を使った単純なcamelアプリの作成手順

[**Apache Camel**](https://camel.apache.org/) で作られたアプリの動作検証のため、新たに単純なアプリを作りたかったが、Java系は1から作ったことがほとんど無くて勝手がわからない。

ひとまず公式ページの説明に従って、1秒毎にログを出すrouteが存在するcamelアプリを作ってみた。camelの起動などに関しては検証しないので、簡単に作れそうな [**Camel Spring Boot starters**](https://camel.apache.org/camel-spring-boot/latest/index.html) を使った。

## 環境

* Java: 1.8.0_191
* Maven: 3.6.3
* Camel: 3.2.0
* Spring: 5.2.5.RELEASE
* Spring Boot: 2.2.6.RELEASE

* OS: Ubuntu 18.04
* IDE: IntelliJ IDEA

## プロジェクトの用意
mavenの場合 `pom.xml` が必要なことは何となく知

元記事を表示

Eclipseで保存時に未使用のimportが勝手に削除されるのを防止する

#なぜ不便なのか

Eclipseで、ソースコードを一時的にコメントアウトして保存をした時に、そこで使用されているクラスのimport文が消えてしまう。

コメントアウトから戻したときにimport文を書くのが面倒ということも勿論あるが、それよりimportミスが怖い。
importするときには、Eclipseの優秀な提案機能によって一覧から選ぶだけでimport文が自動入力されるが、
importするクラス名の中には、同名のクラス名が異なるパッケージに入っているものもあり、コメントアウトから戻したときに選び間違えることもなくはない。

#環境

Eclipse Java EE IDE for Web Developers.

Version: Neon Release (4.6.0)
Build id: 20160613-1800

#改善前

![改善前の設定(import文が消える).PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619869/7f70df1a-8cb0-923b-fac5-030

元記事を表示

java(ソースファイル分割)

##元のソースファイル
“`java
public class Calc {
public static void main(String[] args) {
int a = 10; int b = 2;
int total = tasu(a, b);
int delta = hiku(a, b);
System.out.println(“足すと” + total + “、引くと” + delta);
}
public static int tasu(int a, int b) {
return (a + b);
}
public static int hiku(int a, int b) {
return (a – b);
}
}

“`

##複数のクラスに分割

main() と tase(),haiku()でファイルを分割

“`java
public class Calc {
public static void main(String[] args) {

元記事を表示

初心に帰ってJava入門①データ型とアクセス修飾子

#始めに
本記事は、自分が初心に帰りJavaを勉強しなおす記事です。
何回かに分けて投稿します。お暇であれば見ていただければと思います。

環境:
jdk:JavaSE8
エディタ:VSCode

#今回扱うもの
・よく使うJavaのデータ型
・アクセス修飾子

#よく使うJavaのデータ型

以下が良く使うものです。
それぞれ解説していきます。

“`java:Literal.java

public class Literal {

public byte byteValue = 1;
protected short shortValue = 1;
int intValue = 1;
private long longValue = 1L;
public float floatValue = 1.0F;
public double doubleValue = 1.0;
public char charValue = ‘1’;
public boolean booleanValue = true;
publi

元記事を表示

【アーキテクチャー設計】JavaアプリでSQLの実行方法どうする? 2WaySql vs ORM

# 【アーキテクチャー設計】JavaアプリでSQLの実行方法どうする? 2WaySql vs ORM

Javaアプリで、SQLを実行する時って、何を使うか迷いますよね。
そんな方の為に記事を書いてみました。

結論から言うと、2WaySql(DBFlute,uroboroSQL,Doma等)が個人的には、お勧めです。
※前提:中規模以上の業務アプリ開発で、開発者が数十名ぐらいいる場合

2WaySqlの特徴は以下。

* SQLは外部ファイルに記載
* アプリからでもSQLクライアントからでも動作する

何が良いかというと、、、

* 柔軟性があること。
外部ファイル化してあるし、SQLクライアントでそのままSQL実行できるので開発しやすい。
あと、Java以外の言語に移行しやすいし、他のプラットフォームにも移行しやすい。
※Javaに直接クエリ(Criteria API、JPQL、SQLとか)が記載されていると、Javaと依存しまくりで、移行性が低い。

* 開発面
ぶっちゃけただのSQL書くだけなので簡単に開発できる。開発者のレベルが低くてもOK。
※Criteria API、

元記事を表示

AtCoder 茶diff 一覧

# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Difficulty Status を利用して、プログラミングの勉強をしています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 茶埋完了
20200513.png

茶diff`(Excluding)`埋め完了しましたので、~~コピペ資料として~~まとめたいと思います。
# 茶diff 一覧
|Contest|Problem|Diffculty|記事|コメント|
|:–:|:–:|:–:|:–:|:–:|
|abc073|Spring バリデーションとエラーコード

### データバインド用アノテーション
ドメインクラスで使用するアノテーションです。

| アノテーション | 説明 | 例 |
|:————|:————|:————|
| @NumberFormat | 指定されたフォーマットの文字列を数値型に変換します。 | @NumberFormat(pattern=”#,###”) |
| @DateTimeFormat | 指定されたフォーマットの文字列を日付型に変換します。 | @DateTimeFormat(pattern=”yyyy/MM/dd”) |

“`java:Form.java
import org.springframework.format.annotation.DateTimeFormat;

public class SignupForm {

@DateTimeFormat(pattern=”yyyy/MM/dd”)
private Date birthday;
}
“`

### データバインドのエラメッセージ
resoucesディレクトリに`mes

元記事を表示

【Java入門】変数のスコープ(有効範囲、ローカル変数、インスタンス変数、static変数)

#目的

Java言語を含めたプログラミングの学習を始めたばかりの方、既学習者の方は復習用に、
変数のスコープを学ぶ為に書いています。

前回は[型変換](https://qiita.com/morioheisei/items/28ab5fd69570e01cd317)について学びました。
今回は**変数のスコープ**についてです。

[【Java入門目次】](https://qiita.com/morioheisei/items/6c7fc063c26e63d890ac)
・[変数と型](https://qiita.com/morioheisei/items/3d27e82d6cd88068dded)
・[型変換](https://qiita.com/morioheisei/items/28ab5fd69570e01cd317)
・変数のスコープ ←今ここ
・文字列の操作(準備中)
・配列の操作(準備中)
・演算子(準備中)
・条件分岐(準備中)
・繰り返し処理(準備中)
・クラスについて(準備中)
・抽象クラス(準備中)
・インターフェース(準備中)
・カプセル化(準備中)

元記事を表示

Thymeleaf @RestController, @Controllerの違い

# 概要
Thymeleafを扱う初心者が @Controller と @RestController の挙動の違いを知りたかったので,調べました.

#環境
– springboot
– IntellJ CE
– Lombok

###はじめに
sprintboot を起動し,次のURLにアクセスします.
http://localhost:8080/〇〇

### @ Controller

以下のようなコードで
http://localhost:8080/list
にアクセスすると,
main/resources/templates/list_display.html
のhtmlが画面に表示されます.(”list_display”という文字列がそのまま表示されるわけではない)

“`java
@Controller
public class AppController {
@GetMapping(“list”)
public String from_list(){
return “list_display”;
}
}
“`

元記事を表示

Javaのデバッグ実行【Java初心者向け】

#はじめに

この記事では、既にJavaの環境構築が済んでいる状態で、デバッグ実行の手順について説明しております。

まだ環境構築がお済みでない方は、下記の記事で流れを説明しているのでご覧ください。
[Java開発環境構築 OpenJDK 11をインストールして実行までの流れ](https://qiita.com/gatchan03/items/618f867d7447afa50379)

OS: macOS Catalina バージョン10.15.4
テキストエディタ:Visual Studio Code- Insiders(VSCode)

#デバッグ実行

ではさっそくデバッグ実行していきます。
VSCodeを開いてください。

スクリーンショット 2020-05-13 11.29.29.png

上図

元記事を表示

Spring Boot+Thymeleaf 処理を別々に分けたい場合

Thymeleaf を使って、「こういう使い方があったのか」と感じたので、それについて記述します。

例えば下記のようにformの指定先が同じ(‘/reservations/’ + ${date} + ‘/’ + ${roomId}}”)
だけど、処理を別々に分けたい場合があるとします。

“`html:index.html




元記事を表示

【Java入門】型変換について(キャスト、プロモーション)

#目的

Java言語を含めたプログラミングの学習を始めたばかりの方、既学習者の方は復習用に、
型変換を学ぶ為に書いています。

前回は[変数と型](https://qiita.com/morioheisei/items/3d27e82d6cd88068dded)について学びました。
今回は**型変換**についてです。

[【Java入門目次】](https://qiita.com/morioheisei/items/6c7fc063c26e63d890ac)
・[変数と型](https://qiita.com/morioheisei/items/3d27e82d6cd88068dded)
・型変換 ←今ここ
・[変数のスコープ](https://qiita.com/morioheisei/items/c56ab32b68ce92d32206)
・文字列の操作(準備中)
・配列の操作(準備中)
・演算子(準備中)
・条件分岐(準備中)
・繰り返し処理(準備中)
・クラスについて(準備中)
・抽象クラス(準備中)
・インターフェース(準備中)
・カプセル化(準備中)
・モジュールにつ

元記事を表示

JavaはPowerPointにSmartArtグラフィックを追加します

SmartArtグラフィックは、テキスト情報の視覚的表現であり、強力な組版機能を備えています。この記事では、Javaコードを使用してスライドにSmartArtグラフィックを作成し、そのレイアウトをカスタマイズする方法を示します。

**使用ツール:** Free Spire.Presentation for Java(無料版)

**インストール方法1:** [Free Spire.Presentation for Java](https://www.e-iceblue.com/Download/presentation-for-java-free.html)パッケージをダウンロードして解凍します、次に、libフォルダーから、Spire.Presentation.jarパッケージをJavaアプリケーションにインポートします。

**インストール方法2:** Mavenウェアハウスを介してインストールおよびインポートします。詳細な操作手順については、リンクを参照してください:
https://www.e-iceblue.cn/licensing/install-spirepdf-for-

元記事を表示

ラムダ式をほんのり理解する

オラクルシルバーの勉強でラムダ式に苦戦したので、理解したことをメモとしてまとめておきます。
#ラムダ式は何ができるのか
メソッドを変数のように扱える。
メソッドの引数にメソッドを渡せる。
匿名クラスと同じことをより簡単な記述で書ける。

##ラムダ式のお決まり事
関数型インターフェースの抽象メソッドをオーバーライドする必要がある。
※関数型インターフェース = 1つだけ抽象メソッドを持つインターフェース。

##基本の書き方
(型 引数名) ー> {処理1;};

“`java
(Object o) -> {System.out.println(o);};
“`

#普通 → 匿名クラス → ラムダ式の順番に書いてみる
ラムダ式の仕組みを理解するために
・普通に実装
・匿名クラスで実装
・ラムダ式で実装
という3つで書いてみます。

今回実装するのは関数型インターフェースConsumer。
抽象メソッドacceptをオーバーライドして実装していきます。

“`java:Consumerインターフェース
@FunctionalInterface
public interface C

元記事を表示

コマンドラインでJavaのコンパイルや実行

はじめに
この記事はこれからJavaを勉強する方に向けた私自身の理解している内容の記録です。

Javaの機能や記載方法についてを、下記のリストに分けて記載していきます。

・変数と型、型変換 [Javaの変数宣言や初期化、型について](https://qiita.com/pitan109/items/2538b234a2c6e20c037f)
・変数のスコープ [Java 変数のスコープ(変数を見れる範囲)](https://qiita.com/pitan109/items/b30589bc4c2e8169734c)
・文字列の操作(準備中)
・配列の操作(準備中)
・演算子(準備中)
・条件分岐(準備中)
・繰り返し処理(準備中)
・例外処理 [Javaの例外処理について](https://qiita.com/pitan109/items/c9910edddc007126df41)
・クラスについて(準備中)
・抽象クラス(準備中)
・インターフェース(準備中)
・カプセル化(準備中)
・モジュールについて(準備中)

ただこの記事ではリストとは別で、記事の中でも行なっていたコマン

元記事を表示

スコープの使い方(JSP&サーブレット)

サーブレットクラスで生成したインスタンスをJSPファイルで利用するにはスコープというインスタンスを保存できる領域を利用します。
利用するスコープには「リクエストスコープ」「セッションスコープ」「アプリケーションスコープ」の3種類があり、それぞれのスコープによってインスタンスを保存した際の有効期限などが異なります。

以下、それぞれのスコープの基本構文です。

##リクエストスコープ
リクエスト間でデータを共有したい場合に使用する。

“`java:
//requestスコープに保存
request.setAttribute(“属性名”,インスタンス);
//requestスコープから取得
インスタンスの型 変数名 = (インスタンスの型) request.getAttribute(“属性名”);
“`

##セッションスコープ
HTTPセッション間でデータを共有したい場合に使用する

“`java:
//Sessionスコープの取得(保存領域を確保)
HttpSession session = request.getSession(true);
//sessio

元記事を表示

Eclipseで使える便利なショートカットキー

今回は私がEclipseでよく使うショートカットキーをまとめてみました。(Ctrl + Cなどの基本的なものも含めています。)

##コード編集
– **[Ctrl] + [Alt] + [↑/↓]:**選択した行を上/下に複製
– **[Alt] + [↑/↓]:**選択した行を上/下に移動
– **[Ctrl] + [D]:**選択した行を消去
– **[Ctrl] + [/]:**選択した行をコメントにする/解除
– **[Ctrl] + [Shift] + [/]:**選択範囲をブロックコメントに
– **[Ctrl] + [Shift] + [\\]:**選択範囲のブロックコメントを解除
– **[Shift] + [Alt] + [R]:**リネーム(メソッド名や変数名にカーソルを合わせていれば、ソースコード内の名前をまとめて変更できる)
– **[Ctrl] + [Back space/Deleat]:**選択カーソルの前/後ろの単語を消去
– **[Ctrl] + [Space]:**入力候補の表示/補完(sysoutを入力後に使うとSystem.out.pr

元記事を表示

Spring Boot + Spring Data JPA複数のテーブル結合について

Springを使用してのINNER JOINやLEFT JOINなど参考書を読んでも苦戦したので、備忘録として記載します。

#今回実現したいこと
部屋名と備品名を画面に出力する。

##Roomテーブル

|       | カラム名     | データ型 |
|:—————–|—————–:|:—————–:|
| 部屋番号 | room_id      | INT |
| 部屋名 | room_name     | VARCHAR|

##Equipmentテーブル
|       | カラム名     | データ型 |
|:—————–|———–:|:—————–:|
| 備品番号 |equipmentId_id  | INT |
| 備品名

元記事を表示

【Spring Boot】環境構築(macOS)

Eclipse、Java、Spring Boot全てにおいて初心者です。
なんとか環境構築を終えましたが、間違いがあればご教授お願いいたします。

## 開発環境
– macOS
– Eclipse 4.8 Photon
– Spring Tools 4

## Eclipseのダウンロード

##### ❶ [公式サイト](https://mergedoc.osdn.jp/)にアクセスし、`Eclipse 4.8 Photon` を選択
![スクリーンショット 2020-05-12 17.04.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506701/de63f808-63d7-ca22-7239-15b21a03f5ef.png)

##### ❷ `Mac 64bit` 、 `Full Edition` 、 `Java` を選択
![スクリーンショット 2020-05-12 17.05.28.png](https://qiita-image-store.s3.ap-northeast-1

元記事を表示

Java開発環境構築 OpenJDK 11をインストールして実行までの流れ

#最初に
Javaの学習に伴い、環境構築をすることになったため、一連の流れをまとめました。

– Java始めたいけど、環境構築どうすればいいんだろう?
– 公式オラクルでJDKのインストールしようとしたらプロファイルの作成を求められるから別の方法ないかな?
– JDKインストールしたはいいけど、そっからどうすればいいの?

という方の参考になればと思います。

OS: macOS Catalina バージョン10.15.4
テキストエディタ:Visual Studio Code- Insiders(VSCode)

#Javaってどんな特徴があるのよ

インストールの前にさらりとJavaの特徴を書いておきます。
知ってるよという方は、さらりと流してください。

##”Write once , run anywhere”
Javaのスローガンでこういう言葉があります。
「一度コードを書けば、どこでも実行できるよ」ということで、
Javaの開発はWindows,Mac,Linuxどれでも行うことができ、
汎用的でOSに依存しません。

##主にどんなことができるの?

参考サイト:ht

元記事を表示

OTHERカテゴリの最新記事