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

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

Spring BootでHello Worldをブラウザで表示するまでの流れ

## はじめに
今回は、Spring Bootで画面に「Hello World」を表示するまでの流れを書いていきます。
こちらは、VSCodeでSpring Bootプロジェクトを開始した後からの流れを書いていきます。
(今回はSpring Securityを依存関係に含んでいないのでログイン画面は表示されません)

プロジェクト開始までの流れはこちらの記事を参考にしてみて下さい。↓
https://qiita.com/hukuryo/items/0bb58861751db3c20d26

## HTMLテンプレートを作成
まず「Hello World」を表示するHTMLを簡単に書いていきます。
“`:main/resources/templates/hello.html




元記事を表示

Java メソッドについて

この記事はJavaにおいて自分の中で曖昧なもの、整理できていないものをまとめていく自分用の記事です。

・メソッド

メソッドとは、なにかを動かす処理をするプログラムのこと。Javaにもともと備わっているメソッドとJavaにもともと備わっているメソッドを組み合わせたりして自分で作るメソッドの2種類ある。

・Javaにもともと備わっているメソッド

“`Java:javaMethod.java
public class javaMethod {
public static void main(String[] args) {
String message = “hello”;
message.toUpperCase();
}
}
“`

上記のtoUpperCaseは文字列を大文字化するメソッドであり、Javaにもともと備わっているメソッドである。
私たちはこのようなJavaにもともと備わっているメソッドを組み合わせたりして大きなメソッドを作ってプログラムを作っていく。

・引数のないメソッド
元記事を表示

java 変数のルールやマナー

こんにちは。
今日は

* なぜ変数を使うの?
* 変数を使うにあたっての決まりやルール
についてアウトプットしていこうと思います。

そもそもなぜ、変数なんて使う必要があるのか、
それには理由があります。
実際開発をしていくと、プログラムの中には、とんでもない種類の値が出てきます。
これを開発者は整理し、わかりやすくコードを書いていきます。
そして、それをすぐに修正、変更できるようにしなければならないのです。

例えば、
“`java:Main.java
System.out.println(“Aさん、javaを学習しましょう”);
System.out.println(“Bさん、javaを学習しましょう”);
System.out.println(“Cさん、javaを学習しましょう”);
“`
と言う文があるとします。
この文の、`java`のところを、`プログラミング`に変更しなければならない時、
`java`の部分を三箇所書き換えなければなりません。
これだけならいいけど、こんなことが沢山あったら変更するの大変ですよね?
そこで、便利なのが変数って訳ですね。
“`java

元記事を表示

クラスの分割とAPIの活用

# はじめに
今回はインプレス社が出版しているスッキリわかるjava入門についての練習問題を説明し、クラスの分割とAPIについての個人的な解釈を記述します。今回は第6章辺りを説明します。

# 動作環境

– Window 11
– Java SE 11

# ソースコード
“`java
package comment;

public class Main{

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Zenhan.doWarusa();
Zenhan.doTogame();
Kouhan.callDeae();
Kouhan.showMondokoro();
}

}

“`
“`java
package comment;

public class Zenhan {

public static void doWarusa() {
System.out.println(“きなこでござる。くえません

元記事を表示

Leetcode 290. Word Pattern

https://leetcode.com/problems/word-pattern/description/

## 難易度
### Easy

## アプローチ
### Brute-force

“`java
class Solution {
public boolean wordPattern(String pattern, String s) {
HashMap map = new HashMap<>();
String[] arg = s.split(” “);
int length = pattern.length();
if(arg.length != length){
return false;
}

for (int i = 0; i < length; i++) { char p = pattern.charAt(i); if (map

元記事を表示

Leetcode 520. Detect Capital

https://leetcode.com/problems/detect-capital/description/

## 難易度
### Easy

## アプローチ
### Brute-Force

“`java
class Solution {
public boolean detectCapitalUse(String word) {
boolean check = false;
for (char a : word.toCharArray()) {
if (65 <= a && a <= 90) { check = true; } else { check = false; break; } } if (check) { return true; } for (char a : w

元記事を表示

Object型equalsメソッドとString型equalsメソッドの違い

# Object型equalsメソッドとString型equalsメソッドの違い

javaで出てくる”==”演算子と”equalsメソッド”の違いは、プリミティブ型とString型それぞれの参照時の使い分けです。
例えば

`int a = 10;`
`int b = 10;`
`System.out.println(a == b); //true`

このようにプリミティブ型の変数は値が直接格納されるため参照値の比較ではなく同じ値同士の比較が行われます。
Stirng型の文字列の比較も同じように”==”比較は可能です。

`String a = “aa”;`
`String b = “aa”;`
`System.out.println(a == b); //true`

ただこのようにString型をnewして使うと結果が変わってきます。

`String a = “aa”;`
`String b = new String(“aa”);`
`System.out.println(a == b); //false`

この時の違いとしては上のString a =”aa”;は*

元記事を表示

JavaのArrayListクラス、ジェネリクス、イテレーター(Iterator)

## ArrayListクラスとは
・java.utilパッケージに含まれている複数のオブジェクトをまとめて管理出来る**コレクションクラス**の一つ
・配列は最初に格納出来る要素数は決まっているがArrayListクラスは要素の数が**動的**に変わる配列で文字列や整数などのいろいろな配列を入れる事が出来る。

・格納する要素のデータ型の指定する際には**ジェネリクス(<>)** 内に指定する(ジェネリクスとして<〜>で囲んだ指定部分を「型パラメータ」とも呼び、型パラメータにはクラス名を指定する。)
“`
ArrayList<データ型(型パラメータ)> オブジェクト名 = new ArrayList<>();
“`
データ型の部分には ArryaListの要素に格納する値のデータ型を指定する。例えば文字列を格納する場合は次のように記述する。
“`:例
ArrayList list = new ArrayList();
//クラス名  オブジェクト名  =  new  クラス名;
“`
右辺のArrayListで一つのクラス名と考

元記事を表示

MyBatis GeneratorでBLOBをbyte[]ではなくInputStreamとして出力する

# 概要

MyBatis Generatorでデフォルトの設定のままModel/Mapper一式を生成すると、DB上でBLOBで持っているカラムがModel上でbyte[]型になってしまいます。
byte[]型の代わりにInputStream型で出力させる方法を備忘録として書き残しておきます。

GitHubに実際のリポジトリ例も置いてあります。
https://github.com/ishioka0222/spring-boot-file-upload-download

# 手順

MySQLで以下のようなDDLで生成される`FILE`テーブルがあるとします。

“`sql:schema.sql
CREATE TABLE DEMODB.FILE (
TYPE_ID INT NOT NULL PRIMARY KEY,
NAME VARCHAR(256) NOT NULL,
CONTENT LONGBLOB NOT NULL
);
“`

このとき、MyBatis Generatorの`generatorConfig.xml`の中に設定を追加します。
以下

元記事を表示

関数プログラミング

## 変換
“`java
public class Main{
public static void main(String[] args) {
final List friends = Arrays.asList(“Braian”, “Mike”, “Neal”, “Hana”);
// すべてのデータを出力
friends.forEach((final String name) -> System.out.println(name));
// 大文字に変換後に出力
friends.stream().map(name -> name.toUpperCase()).forEach(name -> System.out.print(name + ” “));
System.out.println();
// 関数を使用した場合
friends.stream().map(String::toUpperCase).forEach(name -> System.out.print(name + ” “));
}
}
“`

## 検索

元記事を表示

【Java】Javaにおける変数の扱い方

# はじめに
プログラミング初学者の者です。オンラインでプログラミングを学習させて頂いてるのですが、さらに理解を深めていきたいと思い、学習したことを備忘録として、残して理解を深めていきたいと思います。
また、間違った点など、ありましたら、ご指摘いただけると幸いです。よろしくお願いします。

# Javaにおける変数
これまで私は、Rubyを中心に基礎学習をおこなってきました。そこでRubyと比較しながら、javaにおける変数の理解を深めていきたいと思います。

変数は、プログラミング言語によって扱い方が異なります。扱い方によって分類すると「動的型付け言語」と「静的型付け言語」の2種類がありますが、前者がRubyで、後者がJavaになります。

RubyとJavaでは分類自体が異なるほど大きな違いがあるようです。
これらの違いを理解するため、「データ型」について理解します。

# データ型とは
データ型とは。変数に格納するデータの種類のことです。

Rubyでは、「数値としての1」と「文字としての1」はプログラム上では異なるものとして扱われます。

データ型は、このような「数値」や「文字

元記事を表示

MyBatis Generatorで生成したMapperで “Invalid bound statement (not found)” というエラーが出た場合の対処法

# 概要

MyBatis Generatorで生成したMapperを呼び出そうとしたところ、以下のようなエラーが出ました:

“`
There was an unexpected error (type=Internal Server Error, status=500).
Invalid bound statement (not found): com.example.demo.dao.FileTypeMapper.selectByExample
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.demo.dao.FileTypeMapper.selectByExample
at org.apache.ibatis.binding.MapperMethod$SqlCommand.(MapperMethod.java:235)

“`

この記事では、このエラーが出る原因と解決方法について調べた結果を共有します。

# 原因

元記事を表示

OpenCSVの使用方法について(データクラスに配列やリストがある場合)

# # 初めに
本記事は以前投稿した「OpenCSVの使用方法について」([下記記事](https://qiita.com/T-H9703EnAc/items/0cbb28935ca7a7e30d9c))の内容のデータクラス(この記事ではJavaBeans)を使用した際のCSVの書込み方法の続きのようなものです。以前のものだとデータクラスのフィールドの型が配列やリストの場合に上手く出力されないのでそれに対応した形となっております。

https://qiita.com/T-H9703EnAc/items/0cbb28935ca7a7e30d9c

# # 今回作成したプログラムの前提事項
・データクラスの型はすべてString型であること前提とします。
・配列やリストの最大値の設定をアノテーションを用いて行うが出力はその最大値分必ず出力されます。
・配列やリストのヘッダー名は「共通の名前 + 末尾に番号」がついたものになります。

# 配列やリストの場合にそのサイズの最大値を設定するアノテーションを作成する
見出しの通り、配列やリストの場合にそのサイズの最大値を設定するアノテーションを

元記事を表示

変数の連結 更新 自己代入 

今日もやっていきます。

int型変数では、数値が入った変数であれば、計算が可能です。
数値と変数の計算も、変数同士の計算も可能です。

まずは、変数+数値

“`java:Main.java
int number1 = 20;
System.out.println(number1 + 5);
“`
変数の定義と同時に、20と言う値を代入します。
そして、次に、出力させます。“`System.out.println(number1 + 5);“`
“`number1“`には、“`20“`を代入しているので、結果は
“`text:java.コンソール
25
“`
となるわけです。

次に変数+変数です。
“`java:Main.java
int number1 = 20;
System.out.println(number1 + 5);

int number2 = 10;
System.out.println(number1 + number2);
“`
“`number1“`には“`20“`、“`number2“`には“`10“`が代入されてい

元記事を表示

[Apache Hop] Hop Webのデモサーバを試してみた

# 対象者
– Apache Hop (データオーケストレーションプラットフォーム) を試してみたい方
– ローコードでデータ収集、変換処理を設計、実装を検討しているかた。

# 紹介したいこと
– **公式のHPでHop Webのデモサーバが公開されました。Hop Web (GUI) をすぐに試せる**ようになりました。(2023/01/03時点)
– GUIで、どんなふうに定義するのか、実行するのか、どんな部品があるのか、興味がある人がいらしたら、お試しみてほしいです。
– あくまでも一時的に試す環境で30分ごとにリセットされるような環境です。**これを使ってみて興味もっていただけたら、ダウンロードして試してみてほしいです!**

# Apache Hopとは
– Apache Hop は オープンソースのデータ統合プラットフォームです。 ETL (Extract/Transform/Load) の開発ツール・実行エンジンです。

– 日本Apache Hopユーザーグループのとりまとめの案浦さんの紹介動画

https://www.youtube.com/watch?v=-GJI

元記事を表示

QuarkusでTodoList

# QuarkusでTodoList
## お詫び
PCが古すぎて色々不具合が起きるので・・・一旦これまでにしたいと思います。

## 導入
### 公式
https://ja.quarkus.io/get-started/
https://ja.quarkus.io/guides/hibernate-orm
◾︎Windowsで試した時はquarkus devで失敗した。jbangのPathが通ってなかったのが
原因かと思われる。
◾︎ライブコーディングがうまくいかず、一度ターミナルを閉じてからやり直したことでコーディングを続けていた。
### Docker
Dockerを現在のMacに合わせてインストール
確認した大丈夫そうなので続ける。
Docker デスクトップが立ち上がらない現象が起きたので
Docker reset factory defaults
というDockerの指示にしたがって成功
port重複というメッセージが出たが確認できなかったので
Docker再起動
その後
“`
sudo lsof -i :5432
sudo kill 68
“`
下記は基本的なコマン

元記事を表示

Java:ラッパークラス

## ラッパークラスとは
各基本データ型に対応したクラスの事。
基本データ型であるint型やdouble型の値をオブジェクトとして扱えるようになり、基本データ型にはない色々なメソッドを利用することが出来るようになる。

Javaでは基本データ型が用意されており、数値や文字を格納したり演算子と組み合わせる場合であれば基本データ型を使えば十分だが基本データ型にはクラスのようにメソッドは用意されていないので、基本データ型に対して操作を行ったりすることは出来ない。
そこで基本データ型の値を持つことができ、色々なメソッドを用意したクラスが用意されていルのが**ラッパークラス**と呼ばれるもの。

![スクリーンショット 2023-01-03 16.29.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2785154/b85c4bec-fd0d-529d-8962-5acb6a5447e8.png)
ラッパークラスの名前は基本データ型の1文字目を大文字にするがint型とchar型は名前が変わる。
“`:使い方

元記事を表示

新卒入社から2年半で読んだ本を一覧化してみた

# 概要
新卒で入社してから2年半で読んだ本の中でためになった本を一覧化してみました。
難易度・おすすめ度・分類・感想は随時更新していきます。
タイトル名がAmazonのリンクになっています。

## 設計
| タイトル | 難易度 | おすすめ度 | 分類 |
| :— | :— | :— | :— |
| [リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック](https://amzn.asia/d/53Pm14g) | | | |
| [達人プログラマー(第2版): 熟達に向けたあなたの旅](https://amzn.asia/d/5Uf3ypp) | | | |
| [リファクタリング(第2版): 既存のコードを安全に改善する](https://amzn.asia/d/e00t1s1) | | | |
| [Java言語で学ぶリファクタリング入門](https://amzn.asia/d/51FQ2WL) | | | |
| [ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本](https://

元記事を表示

変数の定義 基本的な使い方

前回までは文字列、数値と言うように値を呼んでいましたが、今日からは、データ型と呼びます。
“`text:データ型
“Hello World”(文字列)→→→→ String型
3(整数)→→→→ int型
“`
簡単に説明するとStringは文字列、int(integer)は整数を意味します。
あと注意するところは、
“`
String型は大文字から始まり、
int型は小文字から始まる。
“`
基本なので間違えないように!
[このようなこと](https://qiita.com/singekino-ojisan/items/12a51976b827e7dedb1c#comment-7c3391dbc179490cbf3d)もあるとご指摘いただいただきました。
ご教授いただきありがとうございます!

次に変数について。
簡単に言うと、
“`
データ(値)を入れておく箱(変数)

箱(変数)には名前(変数名)がついていてその名前を使い、
変数から値を取り出すことができる。
“`
| 箱(変数) |

元記事を表示

メモリ消費量を抑えてxlsxファイルを読み込みたい

Apache POIを利用してxlsxファイルを読み込む方法として、インターネット上ではUser APIがよく紹介されています (`HSSFWorkbook`とかを利用するもの)。これは便利ですが、読み込む対象のxlsxファイルをすべてメモリ上に展開するので、巨大なxlsxファイルを読み込む場合は、大量のメモリを消費する場合があります。

ではメモリ消費量を抑えて、xlsxファイルを読み込みたい場合はどうすればよいかというと、Event APIというAPIを利用します。自分はこのAPIをよく利用するのですが、インターネット上に日本語情報が少なく、実装のたびに困っているので、自分用にまとめておこうと思います。ちなみに以下の記事も参考にしてください。

https://qiita.com/neko_the_shadow/items/4ee737e9fb98dfb275b4

以下はEvent APIを利用し、対象のシートを読み込んで、2次元配列に変換するサンプルです。

“`java
public class SheetToMatrix {

public List

元記事を表示

OTHERカテゴリの最新記事