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

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

【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周りの開発技術はもっとわからない、、、頑張

まとめる

言語はとにかくまとめることが大切ですね。

# C言語
c言語では構造体という仕組みがあります。
今で言うところのクラス、やオブジェクトのようなものと考えても良いでしょう。
ただ、C言語の場合は、オブジェクトのようにメソッドを持つことはありません。
ただ、データの構造を表すだけ、だから構造体と言われるのですね。
“`c:struct
struct 構造体名{
メンバ 1;;
メンバ 2
};

“`
## 構造体を使わないと
一昔前の仕組みではありますが、この構造体と言う仕組みはよくできていて、構造体を使わないと、ソースがとても読みづらいものになります。
例えば、自動販売機内にある缶ジュースを表そうとしていみましょう。
必要な項目としては、大体
商品名
単価
種別(暖かい 冷たい)
ぐらいでしょうか。
これを変数で表そうとすると、
“`c:変数
char naem[];
int price;
int type;

“`
のようになるでしょう。
しかし、これはあくまで商品aにおいての変数であり、商品bのデータを保存するには別の変数を定義しなければいけません。
これではもし商品

Lombok Annotation @Data

### Lombok
Lombokとは、SpringやSpringBootなどに追加してコードを効率的に作成できるようにするJavaライブラリ。クラス名の上にAnnotationを明示することで、GetterやSetterのようなメソッドを別に作成する手間を省いてくれる。

#### @Data
– 定義
@Getter、@Setter、@ToString、@EqualsAndHashCodeと@RequiredArgsConstructorの機能が含まれている便利なAnnotationである。しかし、最初に設定したデフォルト値を変更する場合、問題が生じるかの世があるため、個々のAnnotationの設定値をデフォルト以外の値に設定して使用したい場合、@Dataの代わりに個々のAnnotationを使用する。
– Annoation
1.@Getter、@Setter:データにアクセスする時に使用
2.@ToString:オブジェクトが持っている情報や値を文字列にして返す
3.@EqualsAndHashCode:equals(Object)メソッドとhashCode()メソッドを作

Jacksonについて

## Jackson
1. 定義
Java ObjectをJSONに変えたり、JSONをJava Objectに変えるために使用するJavaライブラリ

2. 特徴
(1)XML/YAML/CSVなど様々な形式のデータをサポート
(2)Stream方式で高速かつ柔軟で、Annotation方式でメタデータを記述できる
(3)ObjectMapper APIを使用してObjectにデータを設定する

3. Core Modules
(1)Streaming(jackson-core)
   low-level streaming APIを定義する役割とJSON-specific implementationsを含むModule
(2)Annotations(jackson-annotations)
   Jackson annotationが含まれているModule
(3)Databind(jackson-databind)
   Streaming packageのDatabindingをサポート。StreamingとAnnotations packageに依存

:::note  

JasperReportsでExcelを作成する

# 背景

– JasperReportsでPDFを作成する記事は結構あるけどExcelに関する記事は少なかったので
– JasperReports自体はJavaで動作する帳票出力ライブラリ。昔からあるライブラリで日本語の情報も豊富。

# 環境

– Java 11
– jasperreports 6.19.1
– Gradle 7.4.2

# 実装

## 下準備

– 関連ライブラリを入れておく

“` gradle: build.gradle
plugins {
id ‘java’
}

group = ‘qiita.jasper.sample’
version = ‘0.0.1-SNAPSHOT’
sourceCompatibility = ’11’
targetCompatibility = ’11’

repositories {
mavenCentral()
}

dependencies {

// Test
testImplementation ‘org.junit.jupiter:junit-jupiter:5.5.2’