JAVA関連のことを調べてみた2022年08月24日

JAVA関連のことを調べてみた2022年08月24日
目次

Creates Spring Boot application runs in Java Servlet container

# On Servlet 3.0 container

If you plan to run your project on Servlet 3.0 container (e.g. Apache Tomcat start from 7.0), it is very easy to convert the project from run in command line to run in a Servlet container.
1. in software project management tool, change generate file format from jar to war, and prevent to append version number to file name
1. include **org.springframework.boot:spring-boot-starter-tomcat** into project’s dependency
1. change the class which annotated with @SpringBootApp

元記事を表示

【Spring Boot】自作のバリデーションを作る

バリデーションを自作する方法を学んだので、備忘として本記事を作成しました。

# 使用環境
– Windows10 (64bit)
– spring-boot : 2.7.1
– postgres : 11.15

# ユースケース
ユーザーを新規会員登録させるときに、emailとpasswordの入力が必須。
その際に既に登録してあるemailで新規会員登録できないようにしたいので、
入力されたemailが既にDBに登録があった場合はエラーとなるように、バリデーションを自作する。
バリデーションの名前は“@UniqueEmail“とする。

## エンティティクラスの作成
今回、ユーザー情報はusersテーブルに格納しておくので、
そのテーブルに対応する“user“クラスを作成する。
~~~java:user.java
package com.example.domain;

import文省略

public class User {
private int id;
private String email;
private String password;

元記事を表示

JAVA DTOとDAO

# DAO/DTOパターン
まず最初に、DAO/DTOパターンを理解するときに、
「なぜそんなものが必要なのか?」が一目でわかるような画像があったので
紹介したいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2661107/9feaa0a8-5d4b-4c56-2cde-88484181c01e.png)
[こちらの記事を参考にしました](https://kanda-it-school-kensyu.com/java-jdbc-contents/jj_ch04/jj_0402/)

メリットとして
– 1レコードのデータを一括で管理できるため、データの受け渡しが容易になる
– アクセス処理の回数を減らしパフォーマンスを向上することができる

よく言われるのは、
DAOはメソッドを持つがDTOはメソッドを持たないと違いを説明する人もいます

私の中での理解
`DTO`→ 型を事前に定義する。データを受け渡すためのクラス。
`DAO`→ SQLを呼び出す。データを操作するための

元記事を表示

Javaで作られたWEBアプリケーションの運用にあたってJVMのパラメータをKubernetesマニフェストで管理する

## はじめに
皆さんこんにちはasmgです。今回は、Javaで作られたWEBアプリケーションの運用にあたってJVMのパラメータをKubernetesマニフェストで管理するタスクを行なったので実現した方法を記載していこうと思います。
## 本記事の対象者
本記事は、JVMのパラメータをKubernetes マニフェストで管理することに着目しているのでkubernetesやJVMについて言及はしません。なので、KubernetesやJVMのパラメータは理解していることを前提としています。
## 本記事の実行環境
#### 検証機
* Mac Book pro 14inch M1 Pro
#### 検証環境
* kind(Kubernetes in Docker)

## 現状のJVMのパラメータの管理方法
現状、JVMの管理は以下のように行っていました。

“`Dockerfile:Dockerfile
FROM openjdk:8-jdk-oraclelinux8
COPY ./target /
CMD [“./apply.sh”, “./app.jar”]
“`
“`shell

元記事を表示

【Java】Math.randomを使わずに手軽にサイコロを作りたい【Collections】

サイコロを作りたい

ランダムに1〜6の数字が出るようなプログラムを作ってサイコロを振りたい!
Javaでサイコロを作る、と言われたら、皆さんは何を思い浮かべますか?

解答

リファレンス:Math.random 
通常、Math.random()クラスを用いて以下のような形で記述すると思います。
これはおそらく一番一般的な方法で、Javaを勉強する時に練習問題等で解いた方も多いのではないでしょうか。

“`Java:Main.java
public class Main {
public static void main(String[] args) {
int dice_num = (int)( Math.random() * 6 + 1 );
System.out.println ( “サイコロ振ったら” +

元記事を表示

ABC265A~Eの解答[Java]

## はじめに
今回はコンテスト中にDまで、コンテスト後にEが解けたのでEまで書きます。

では、見ていきましょう。

## A – Apple
問題文は[こちら](https://atcoder.jp/contests/abc265/tasks/abc265_a)

X円払って1個買うかY円払って3個買うかですが、要はどっちがお得かを求めれば良いです。
YがXの3倍より大きいならX円でN個買った方がお得です。一方、Xの三倍よりもYの方が小さいなら3個セットの方がお得です。
ということでそれをMath.minを使って記述して解きました。
Nは3の倍数とは限らないので3個セットで買うときはX*(N%3)を足すことに注意しましょう。
“`A.java
class Main{

static Library System = new Library(java.lang.System.in,java.lang.System.out);

public static void main(String[] args)throws IOException{

//値の受け取り
in

元記事を表示

blastengineのJava SDKを使って添付ファイル付きメールを送信する

blastengine(ブラストエンジン)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。

現在、Java向けに、blastengine SDKを開発しています。この記事では、その使い方を解説します。0.0.2で対応した添付ファイル付きメールの即時送信について解説します。

[blastengineMania/blastengine-java: Java SDK for blastengine](https://github.com/blastengineMania/blastengine-java)

## ユーザ登録する

blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。

![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b74e-e1e2-ac34

元記事を表示

qiitaに上がっていた初心者用webアプリ(java)を作成してみたときの備忘録

## 1.はじめ
Qiitaに投稿されていたwebアプリを作成した際に悩まされたエラーの解消方法について記載しておきます。

## 2.対象エラー
There was an unexpected error (type=Internal Server Error, status=500).
could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet

SQLに関するエラーだとはわかりましたが、今回SQLファイルは作成していなかったのでどこでエラーになっているのかわかりませんでした。

## 3.解決方法
上記エラーで検索してヒットしたサイトを見てみると、SQLテーブルを事前準備として作成しているサイトが多く見つかりました。
そこで、テーブルを作成するSQLを対象サーバー内で実行しました。
すると、エラーは消えて動くようになりました。
“`
create table customer

元記事を表示

【申し込みから合格まで】Java SE 11 Programmer IとORACLE MASTER Bronze DBAを自宅で受験した話【2022年8月版】

こんにちは!
新人エンジニアのなっしーです!

先日、Java SE 11 Programmer I(通称Java Sliver)とORACLE MASTER Bronze DBA(通称Oracle Bronze)を**自宅で受験**し、合格しました!
今回はOracle系の資格をピアソンVUEで自宅受験する際の流れや様子をご紹介したいと思います。

コロナ禍で会場に行くのが怖い!でも自宅受験ってどんな感じなんだろう…?という方の参考になれば幸いです!
~~Oracleの試験の申し込み方法難しすぎる(怒)という方も参考になるかと思います。~~

# 目次
1. 申し込む前の確認
1. 申し込み
1. 受験前日まで
1. 受験直前
1. 受験中
1. 受験後
1. 感想・おまけ

# 申し込む前の確認
試験を自宅で受験するには、以下のものが必要になります。
– ある程度強力なインターネット環境
– PC
– 顔を映すためのWebカメラ(PC内蔵のものでも可)
– 自分1人だけの静かな環境(他者がカメラに映り込んだ時点で即アウト)
– キレイな机
– 顔写真付きの身分証明書
– スマホ(受

元記事を表示

JavaでSpringを理解するまでのおすすめ本

# 概要~Java初心者が現場使えるSpring/SpringBootを理解するまでの参考書ロードマップ~

最近はサクッとプログラミングできるPythonがお気に入りですが、実は仕事の現場では専らJavaを使ってます。
Javaが流行って何十年か経過した結果、現場にはJavaシステムが浸透しており、それらJavaシステムを一度に別のプログラム言語に置き換える状況はなかなか考えにくく、Javaの需要もまだしばらく続くだろうなぁと思っています。

そんな中、新人は毎年入ってくるわけで、Pythonできます。と、言われればそれはそれで重宝するのですが、実際にはJavaも頑張ってね。となります。
そんな状況がここ2、3年続いた結果、私が10年以上働く間にJava初心者に何を学んでもらえばいいか考え、行き着いた結果の良質な参考書10選を今回紹介します。

題して、**Java初心者が現場使えるSpring/SpringBootを理解するまでの参考書ロードマップ**です。

ついでにJavaで本格的にプログラミングが出来るようになっただけで物足りない。
さらに上を目指す意識高い系の皆さん向けの番

元記事を表示

【Angularアプリケーション開発 #9】ログイン機能とセッション管理について

# はじめに
今回、IDとパスワードでのログインを実装しました。
また、ログイン後の画面に直接アクセスした場合、ログイン状態を確認し、遷移先を分岐させるようにしました。

## ログイン
### ログイン画面
“`html:login.component.html

Login


コネクションプーリングとは?なぜ要るのか?を Oracle Database で簡単に説明してみる。

社内で「コネクションプールって何ですか?なぜ要るんですか?」という素朴な疑問が発生したので、Oracle Database をモデルにして簡単に説明してみますやで。
彡(゚)(゚)

# 1. 前提知識1:Oracle Database のプロセス・アーキテクチャ

Oracle Database は UNIX/Linuxプラットフォーム の場合はマルチプロセスのアーキテクチャが採用されています。

> Oracle Databaseデータベース概要 19c
> 15 プロセス・アーキテクチャ
> https://docs.oracle.com/cd/F19136_01/cncpt/process-architecture.html#GUID-85D9852E-5BF1-4AC0-9E5A-49F0570DBD7A
> プロセス実行のアーキテクチャは、オペレーティング・システムによって決まります。
> たとえば、Windowsでは、Oracleバックグラウンド・プロセスはプロセス内の実行スレッドです。
> LinuxおよびUNIXにおけるOracleプロセスは、オペレーティング・システ

【日曜大工】4歳の子供に、Javaでジャンケンゲームを作った話。

4歳の子供とのテレビのチャネル争いが絶えない。笑
休日は、特にね。そんな時に、閃いた!!!

最近、保育園で、「ひらがな」と「カタカナ」を勉強したとの事なので、ジャンケンゲームを作ってあげれば、それで一日中、遊ぶのではないか?
「Youtubeを見るよりも、文字の勉強になるのでは?」と都合よくも考えて、試作しました。

参考サイトはこれで、私が下部にアップしたコードは、このサイトからの「ほぼコピー」です。
https://camp.trainocate.co.jp/magazine/java-game/

ただ、上記サイトは、パッケージ概念の説明が主目的なので、パッケージを使っているが、私は、それを単一コードに書き換えました。(それだけ。猿でもできる。。。。)

「アンパンマンじゃんけんゲーム」と命名しました。
こんな感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1665829/1df68142-6936-4bf0-0d74-220d64de5433.png)

グー、チョ

【Minecraft Quilt】Minecraft 1.19.xで前提ModがFabricなModをQuiltへ移植してみた

# はじめに
この記事では、Quiltでのコーディング方法(QSLなどの使い方)にも一応触れますが、
Quiltがどういうものなのか、全体的に紹介する記事となっています。

私自身もQuiltに詳しいわけでも無く、数日前に初めて知ったばかりですが、
FabricからQuiltに移植することにしたので、知名度向上の意味も込めて、
記事を残しておきます。

# 開発環境について

開発環境についてみる

## 移植前の開発環境

|項目 |内容 |
|:———————-|:——————————–|
| IDE | IntelliJ IDEA Community 2022.2 |
| Yarn mappings | 1.19+build.2 |
| Fabric loader

Javaで初期値を設定したListの作り方

## 概要
JavaでListを作成する際に、1行で書く方法のまとめ。
いつも忘れちゃうので。

## 基本的な初期化
キホンのキです。new してaddする。

“` java
import java.util.ArrayList;
import java.util.List;

public class Sample {

public static void main(String args[]) {

List list0 = new ArrayList();
list0.add(“a”);
list0.add(“b”);
for(String x : list0) System.out.println(x);
}
“`

## 初期値込みで1行で書く方法

以下3つ例示します。
(1) `List.of`
(2) `Arrays.asList`
(3) arrayListと`Arrays.asList` の併用

“` java
import java.util.Ar

vscodeとgradleでローカルにselenideの環境を作りたい

# 挨拶
地方IT企業で働いて6年目になります。
基幹システムのコード体系が変わることをきっかけに関連する様々なシステムの修正をすることになりましたので少しでもテストの工数を減らすべくselenideというブラウザのテスティングフレームワークを導入する環境構築についてまとめました。
selenideだけではなく、新規にプロジェクトにアサインされた人でも環境構築できるような文章にしていきたいと思います。
これを見てうまく行かなかったということがあればぜひコメント頂きたいです。よろしくお願いします。
既存のプロジェクトのtestフォルダにselenideのテストコードを置くかどうかで迷いましたが、今回は新規のプロジェクトとして作成しています。
超レガシーwebプロジェクトでも別でプロジェクト作成しておけばそれぞれを疎にしておけるので別にしておく方が便利だと思います。

# selenideとは

seleniumというUIテストフレームワークのラッパーしてより使いやすくしたテストフレームワークです。
単なるテスト実行だけではなくて、スクリーンショットの取得なども自動で行うことができます。

E2Eテストを(ある程度)ノーコードで作れるツールを作っている途中で躓いた点をまとめておく

# このドキュメントは?
テストの自動化のハードルが高い方々に向けて、まず最初の一歩を踏み出しやすくするためのツールを作ろうと日々少しずつ作っている中で、「あれ?」と躓いたポイントをメモしておくためのページ。
結果的に皆さんの開発シーンの中で同じような躓きがあったら役立つかもしれないのと、何より忘れっぽい自分のための備忘録。

# 躓き
## aShot を入れたら Selenium が動かなくなった
[Selenium](https://www.selenium.dev/ja/ “Selenium”) を使ってE2Eテストを自動化するのはなかなか古参(?)かも?
個人的にはまだまだ現役だと思っている私ですが、スクリーンショットを撮ろうとすると、その時にブラウザに表示されているエリアしか画像として保存されなくてエビデンス大好きな人たちにとって頭を悩ませるポイントになりがちですよね。
昔は自分で対処していたのですが、ここ最近は [aShot](https://github.com/pazone/ashot “aShot”) というユーティリティがイイ感じにしてくれるらしいので早速 `po

Python,Ruby,PHP,Java,JavaScript,Perlの文字列処理の比較

Python,Ruby,PHP,Java,JavaScript,Perlの文字列処理の比較

# Python

https://qiita.com/tomotaka_ito/items/594ee1396cf982ba9887

# Ruby

https://qiita.com/kyohei-horikawa/items/b3308601931c20074c31

# PHP

https://qiita.com/chimayu/items/9b9cb14548aa7dd8da1b

# Java

https://qiita.com/suema0331/items/a3c947076ee1a0c6037a

# JavaScript

https://qiita.com/saka212/items/11ce1f1d6316c1fbf15b

# Perl

https://perlzemi.com/blog/20161003147558.html

Python,Ruby,PHP,Java,JavaScript,Perlの変数の比較

Python,Ruby,PHP,Java,JavaScript,Perlの変数の比較

# Python

https://qiita.com/G-Rape/items/854a51ef188cd5933bcc

# Ruby

https://qiita.com/Hashimoto-Noriaki/items/d705a3fb92db14de4742

# PHP

https://qiita.com/tokutoku393/items/72d2f3f8986c97c36a27

# Java

https://qiita.com/takahirocook/items/52298e13281e26e576ab

# JavaScript

https://qiita.com/andota05/items/238ff472a0e711b65275

# Perl

https://perlzemi.com/blog/20161107147852.html

業務でSpring Bootにwebpackを用いてjs周りを環境構築した際の備忘録

### はじめに
業務の新人施策で、
チーム内で合意形成し、SpringBootをベースにする、
その上で社内で使える技術なら自由に選んでいいよと言われたので、真っ先にnpmが浮かびました。

その理由は、ただjsファイルを用意するだけでなく、
パッケージマネージャーやバンドラーなどの周辺技術を組み合わて、Spring Bootで開発できたらなと思ったからです。
というわけで、とりあえずnpmを入れてみます。

ソースコードはこちらになります。
(コミットメッセージが超適当です。ごめんなさい。)

https://github.com/tkknot/spring-npm

### 作成者スペック

  • Jsはそこそこに書けるけど、実務の経験はないので客観的にできるとは言えないかも?
  • モダンJSはReactもVueも一応書ける
  • モジュールバンドラーからは逃げてきました
  • Spring Bootはまだまだ学習中のため、本業務で身につけていきたい
  • Spring Boot周りの開発技術はもっとわからない、、、頑張