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

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

#28 Spring Mybatisを利用したデータベース操作[5. テーブル結合1]

# #28 Spring Mybatisを利用したデータベース操作[5. テーブル結合1]
今回はMybatisを用いてテーブルの結合を行います。

# 前提条件
この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため所々説明は省略します。

# 前回まで
前回はMybatisを利用してデータの検索、全クリアを行いました。

https://qiita.com/Jackoguro/items/2b93c45430914af7b9a6

# 構築環境
1. 各バージョン
Spring Boot ver 2.7.5
mybatis-spring-boot-starter ver 2.2.2
Model Mapper ver 3.1.0
jquery ver 3.6.1
bootstrap ver 5.2.2
webjars-locator ver 0.46
thymeleaf-layout-dialect ver 3.0.0

2. 依存関係
![image.png](https://qiita

元記事を表示

基本情報の擬似言語とクイックソートでk番目に小さい値を探してみた!

基本情報技術者の擬似言語の学習のため実際にプログラム化してみました。
仕様はそのままに一部アルゴリズム強化のため自分で自分で条件式等を考えているため実際の擬似言語プログラムとは差異があります。

“`java:qiita.java
import java.util.*;

public class SelectArrayElement {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

System.out.println(“配列の要素数を入力してください”);
int elements = Integer.parseInt(sc.next());
int[] data_array = new int[elements];

/*
* テストデータ
* 入力値 = 3 2回目 7
* [3,5,6,4,7,2,1] 1回目 => 3 ok 2回目: => 7 ok
* [1,3,2,4,2,

元記事を表示

Javaのアノテーション

## アノテーションとは
プログラムの構成要素に付与するメタ情報。
アノテーションとは日本語で「注釈」という意味です。Javaではコンピューターに対してソースコードだけでは命令しきれない情報を伝えるために使用します。

標準ライブラリに含まれる主なアノテーション
|アノテーション名|意味|
|:–|:–:|
|Override|オーバーライドしたメソッド|
|Deprecated|非推奨であることを明示|
|SuppressWarnings|コンパイルの警告メッセージを抑制|
|SafeVarags|ジェネリック型の可変長引数の警告メッセージの抑制|
|FunctionalInterface|関数型インターフェイスを表示|
|Native|フィールドがネイティブコード由来であることを明示|

## 使い方

### @Override
overrideをつけると、「このメソッドはオーバーライドしているメソッドです」という注釈になります。
基となるメソッドが無く、オーバーライドしていると言えない場合はエラーが発生するようになります。

“`java

class AnimalOve

元記事を表示

【エラー・Exception】検査例外・非検査例外~Java~

## 検査例外・非検査例外とは
#### 検査例外
検査をしなくてはいけないもの
#### 非検査例外
検査をしなくても良いもの
  
一括りにするとざっくり「異常や例外」です。
下記のように継承関係があります。
“`java
Object
//↑
Throwable
//↑ ↑
Error Exception
// ↑
RuntimeException

“`
まず、大きく分けて「**Error**」か**そうではない**かに分けられます。

**Error**はプログラムから回復不可能なエラーのことを言います。「プログラムで対処する」ことを求められていません。

逆に言えば**Error以外は**プログラムの中で対処することが求められているエラーです。

以上を踏まえた上で以下のように分けられます。
「**Error**」「**Exception**」「**RuntimeException**」に分けられます。
それぞれ**エラー**、**検査例外**、**非検査例外**を表します。

#### Exceptionの一部(R

元記事を表示

JavaでもVCRでHTTPテストのモックを生成したい [OkReplay]

## はじめに
この記事は [ニフクラ](https://www.nifcloud.com/) 等を提供している、[富士通クラウドテクノロジーズ Advent Calendar 2022](https://qiita.com/advent-calendar/2022/fjct) の 17 日目の記事です。

昨日は @ktakaaki さんの [ITエンジニアがレザークラフトを真面目にやってみた](https://qiita.com/ktakaaki/items/7dd3268cd1b16bea2771) でした。
作品の完成度が高くて驚いています。また、完成イメージから設計図に落とし込む部分はやはり”ITエンジニアが”の部分も生かされているのでしょうか。

本日は、サービス間のテストに用いることができるVCRの仕組みをJavaエンジニアの皆様に向けて紹介したいと思います。

## サービス間のテスト
他サービスのAPI呼び出しを含むテストに用いる手法は大きく3つあるかと思います。
– 結合テスト(実際にAPIを呼び出す)
– モック
– CDC(コンシューマ駆動契約)テスト

マイク

元記事を表示

try-catch文の使い方まとめ①

## 目次
 [1.try-catch文とは](#1-try-catch文とは)
 [2.try-catch文の使い方](#2-try-catch文の使い方)
 [3.try-catch-finally文の使い方](#3-try-catch-finally文の使い方)
 [4.try-catch文使用の注意](#4-try-catch文使用の注意)
 [5.よくある例外](#5-よくある例外)

## 1. try-catch文とは
処理の中で発生したエラーを例外(Exception)といい、例外が発生すると異常終了してしまう。
しかし、try-catch文で例外をキャッチすることで、例外発生箇所をスキップしたり、
例外の内容ごとに処理をおこなったりすることができ、異常終了を防ぐことができる。

## 2. try-catch文の使い方
### 基本構文
“`java
try {
// 例外が発生する可能性のある処理
} catch (Exception e) {
// 例外発生時の処理
}
“`
catch句に例外クラスを指定することで、例外の内容ごとに処理をおこ

元記事を表示

JavaでWord文書にコンテンツ コントロールを追加する方法

Word文書におけるコンテンツ コントロールは、日付、リスト、書式付きテキストなど、特定のコンテンツのための容器です。これらは、特定の種類のコンテンツの入力や表示を容易にするため、テンプレートやフォームなどの文書を作成する際によく使用されます。例えば、日付選択コンテンツ コントロールは、ポップアップ ウィンドウで日付を選択するだけで入力でき、既定の書式またはカスタマイズされた書式で日付を表示することができます。この記事では、無料の[Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html)の助けを借りて、**Word文書にコンテンツ コントロールを追加する方法**を紹介します。

– **[Word文書にドロップダウン リスト コンテンツ コントロールを追加する](#word文書に日付選択コンテンツ-コントロールを追加する)**
– **[Word文書にコンボ ボックス コンテンツ コントロールを追加する](#word文書にコンボ-ボックス-コンテンツ-コントロールを

元記事を表示

Leetcode 232. Implement Queue using Stacks

https://leetcode.com/problems/implement-queue-using-stacks/description/

## 難易度
### Easy

## アプローチ
### Stack

“`java
class MyQueue {

public Stack mainStack;
public Stack subStack;

public MyQueue() {
mainStack = new Stack<>();
subStack = new Stack<>();

}

public void push(int x) {
mainStack.add(x);
}

public int pop() {
while(!mainStack.empty()){
subStack.add(mainStack.pop());
}

int re

元記事を表示

学生証を用いた入退出管理システムを作成した話

はじめに

私は情報系の学部に通う大学2回生で、学園祭実行委員会に所属して模擬店の管理・運営支援を行っています。今回、私は効率的な入室管理を行うべくFelica(学生証)を用いた入退出管理システムを作成しました。

https://github.com/TAKAYAMAN2180/Entry-and-exit-time-Improved-management/tree/master

主に利用した技術

Apach POI

>Apacheソフトウェア財団のプロジェクトで、WordやExcelといったMicrosoft Office形式のファイルを読み書きできる100% Javaライブラリとして提供
>引用:https://ja.wikipedia.org/wiki/Apache_POI

→https://poi.apache.org/

学籍番号とそれに結びつけるデータを保存しているExcelファイルを読み取るために使用しています。

<

元記事を表示

ラムダ式とStreamAPI

## ラムダ式
### 関数を生み出し、即時利用
“`java
public class Main {

public static void main(String[] args) {
double b = 3.14;
IntToDoubleFunction func = x -> {
x = 3;
return x * x * b;
};

Function func1 = (String s) ->{
return s.length();};
int num = func1.apply(“ABCD”);
System.out.println(“ABCDは” + num + “文字です。”);
}
}
“`

### 並び替え
“`java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main6 {
public static void ma

元記事を表示

ファイルの読み書き

## ファイルに2進数のデータを追記する
“`java
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Main {
public static void main(String[] args) throws IOException {
//ファイル/パスを指定して生成
FileOutputStream fos = new FileOutputStream(“bainary.data”, true);
//書き込むデータをバッファに保存
fos.write(65);
fos.flush();
//ファイルを閉じる
fos.close();
}
}
“`

## 書き込み
“`java
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter

元記事を表示

【kabuslib】auカブコム証券のkabuステーションREST APIを列挙体でラップしたAPI

# はじめに

過去記事は「[auカブコム証券のkabuステーションREST APIに関する記事一覧](https://qiita.com/hiuchida/items/611ba237dc1d1f6e3dca)」。

swagger-uiが生成したソースは、int型やString型なので、列挙体を定義したが、intValue()などで数値にしているため、せっかくの型チェックが効かない。このため、列挙体を使用したAPIメソッドやモデルクラスを作成する。

# APIメソッド

InfoApiのordersGetの定義は以下のようにString型となっている。

“`java
public List ordersGet(
String X_API_KEY, String product, String id, String updtime, String details, String symbol,
String state, String side, String cashmargin) throws ApiException
“`

後か

元記事を表示

新卒エンジニアがコードレビューから学んだ二つの学び(Strategyパターン編)

# はじめに
こちらは「[ラクス Advent Calendar 2022](https://qiita.com/advent-calendar/2022/rakus)」の16日目の記事になります。
新卒で入社し、7月に現在の部署に配属。9月中旬ごろから徐々に開発タスクに取り組み始めました。
最近ではバグ修正に加え、既存APIの改修を担当することも増えてきました。
その中で先輩エンジニアにレビューをいただき、学んだ内容を次に活かすために整理していこうと思います。

まずは簡単に状況の確認をすると、以下の流れです。

1. あるクラスで他のクラスから値を取り処理するメソッドを書き、レビューでアドバイスを貰った
1. 実際に修正し、理解のために手元でクラス図を作成したところ、見た事のある形になっていた
1. 以前読んだ本を見返したところ、これが「Strategyパターン」と名前が付いていることを確認した

では詳しく見ていきましょう。

## レビュー内容
レビュー内容を簡単にまとめると、以下の内容でした。
最初聞いた時は改善した形をイメージできませんでしたが、今では先輩のアドバイスを理解

元記事を表示

いまさら訊けないバッチ実装の心得 6選(超基本編)

# はじめに
これまでWEBアプリケーションをメインで作ってきましたが、最近新規のバッチジョブをまるっと1つ作るという経験をしました。
バッチ実装レベルとしては、既存のバッチ処理の不具合修正を何件かこなしたことがある程度。新規実装は初体験でした。
バッチ実装経験者であれば息を吸うかのように判断できるであろうことに、残念ながらとても悩んでしまう場面が多々ありました。

そんな状態ではありつつ、上司や同僚に質問・相談しながらなんとかローンチに漕ぎつけました。
その際に学んだり、自分なりに行き着いたりした、**初めてバッチ実装する際には悩んだり盲点になったりすると思われる超基本的な心得**を明文化しておこうと思います。

なお、今回実装したバッチ処理は超シンプルなデータ取込処理だったので、「こういう場合はどうするんだろう?たぶんこうするんだろうな」という考察・憶測も記載しています。そちらに関する編集リクエスト、アドバイス、異論反論、歓迎いたします。むしろご教授ください。

# 前提
– 開発環境
– Java8
– Oracle 12c(12.2.0)
– [こちらの記事に

元記事を表示

Web Apps の Java SE スタックについて

## はじめに
本記事は Microsoft Azure Tech Advent Calendar 2022 の投稿です。

Web Apps の Java ランタイムスタックを眺めていると、Tomcat は具体的にわかるのですが、Java SE (Embedded Web Server) という一般的なスタックが出てきます。このスタックはどのような場合に使うのか本記事では調べていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/691192/868ba789-c6c0-2898-6271-1d818f575cd1.png)

## TL;DR
– Java SE は、`java -jar` で動作する Web アプリケーション向けのスタック
– たとえば Tomcat などのサーブレットコンテナが内蔵されている Spring Boot では Java SE スタックを選ぶ

## Java SE (Embedded Web Server)
Tomcat スタックでは、war フ

元記事を表示

【Java】JavaおじさんのJava放浪記:その1(Javaとはなんぞや)

# はじめに

はじめまして、Javaおじさんと申します。
Javaを勉強する上で「知識の出力(アウトプット)」も行えば誰かの為にもなるのでは思い筆を取りました。
何卒ご指導ご鞭撻のほど宜しくお願いいたします。

## 記事の内容

– Javaとは何か大雑把に理解していく。
– Javaってどんな利用方法があるのか知る。
– Javaの開発環境について知る。

# Javaとはなんぞや

– コンパイル型言語の一種 (cf. インタプリタ型言語)
– Write once, run anywhere (Java仮想マシンのおかげで種々のコンピュータ上で使える)
– 色んな統合開発環境 (IDEとも呼ぶ、IntelliJ IDEA・Eclipse・Android Studioなど)

# おわりに

学習の習慣化が大切だと思い、労力削減の為に今後もある程度大雑把にまとめていく予定です。
本記事をお読みいただいた方々に、深く感謝いたします。
記事の内容に誤り等がございましたら、何卒ご指摘の程宜しくお願いいたします。

## 参考

– [スラスラわかるJava 第3版](http

元記事を表示

【MOD】向いている方向にワープする【Minecraft】

MineraftのMODでワープするアイテムを追加するとする。Minecraftの世界はブロックで表現されているわけだが、これがワープ先の座標を決定することを難しくする。
ここでは、右クリックをするとワープするアイテム`ItemWarpStick`を例にして説明する。

# getYRot()を使う
Y軸を軸とした回転の角度を得られるメソッド`getYRot`があるので、それを使う方法である。理解しやすく、単純な方法である。

“`java:ItemWarpStick.java
public class ItemWarpStick extends Item {
public ItemWarpStick() {
super(new Item.Properties().tab(CreativeModeTab.TAB_COMBAT));
}

public Vec3 toVec3(BlockPos pos) {
return new Vec3(pos.getX(), pos.getY(), pos.getZ());
}

元記事を表示

xxx.getClass() と xxx.class

いわゆる型。よくわからなくなってきたのでconsoleに出力して確認

“`sample.java
public static void main(String[] args) {
String s1 = new String(“1”);
System.out.println(s1.getClass());
System.out.println(String.class);
System.out.println(s1 instanceof String);
}
“`
実行結果
“`
class java.lang.String
class java.lang.String
true
“`

元記事を表示

Generics サンプル

paramをgenericsで定義
instance化する際に、concreteなclassを指定する

“`Putlog.java
public class Putlog {
private T param;
public Putlog(T p1) {
this.param = p1;
}
public void setPlog(T p1) {
this.param = p1;
}
public void outlog() {
System.out.println(param);
}
}
“`
“`sample.java
public static void main(String[] args) {
Putlog p = new Putlog(“a1”);
p.outlog();
p = new Putlog(1);
p.outlog();
}
“`
実行結果
“`
a1
1
“`

元記事を表示

Javaで何か作ってみる(2022/12/13 Day54)

## 今日やった事
– オブジェクト指向の動画教材を見た。(**J2-99_さいごに** まで見た。)
– Springの動画教材を見た。(**セッティング~学習環境を準備しましょう~** まで見た。)
## 参考にしたもの
– [Spring 入門 ~ SpringBoot 2 を使ってお問い合わせアプリとToDoアプリを作る ~](https://www.udemy.com/course/java_spring_beginner/)
– [【超初心者も必見】Javaプログラミングの「オブジェクト指向」が絶対理解できる講座【プロ講師が丁寧解説】](https://www.udemy.com/course/uz-java-obj/)
## 所感
– オブジェクト指向は完璧ではないものの、ある程度は理解出来たと思う。
– Springは、動画教材だと、Eclipseをインストールする方法しか紹介されていなかったから、
Eclipseをインストールしなくてもいい方法を模索したい。

## 明日の予定
– 引き続き、動画教材を進めていく。

元記事を表示

OTHERカテゴリの最新記事