JAVA関連のことを調べてみた

JAVA関連のことを調べてみた

Cloud Spanner エミュレータを使ってみる。

## はじめに

この記事は、
 [Get started with Cloud Spanner
](https://www.youtube.com/watch?v=rG3n3YHNZIQ)という動画を参考に、『実際にやってみた』という記事になります。

## この記事で実施する事。
– `Cloud Spanner エミュレータ` とは
– エミュレータをインストールして実行する準備を行う。
– `エミュレータ` で gcloud CLI を使用する。
– Java で `Spanner エミュレータ` を使用する。
– `Spanner` インスタンスを作成。
– `Spanner` データベースを作成。
– 書き込み、読み取り、SQL クエリの実行を行う。

## Cloud Spanner エミュレータ とは
`エミュレータ` を使用することで、`Spanner` 機能を
模倣した開発環境をローカルマシン上に作成できます。

これを使用することで、ユーザーは
Google Cloud プロジェクトや
請求先アカウントを作成することなく、
無料でアプリケーションの開発と

元記事を表示

VSCodeでSpring Bootを利用してプロジェクトを新規作成する

# 初めに
新規参画したプロジェクトでSpring Bootを利用していたため、[クイックスタート](https://spring.pleiades.io/quickstart/)を参考にVSCodeでプロジェクトを新規に作成する

# クイックスタート
手順に従ってプロジェクトを開始する
(設定内容は画面から読み取れる設定を反映した)

## 新プロジェクト開始
Spring Bootで新しいプロジェクトを作成する。
→私はVSCodeで開発しているため、特に説明はなかったが拡張で以下を追加してプロジェクトの作成を実行した。
* Spring Boot Extension Pack

新規プロジェクトだと以下の画面が表示されるため、「Getting Started with Spring Boot in VS Code」を実行する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3616345/ac5cd035-be0b-f8c0-a3ff-733d49c71d41.png)

元記事を表示

MavenでSpringBootを使ったライブラリjarを作成する方法

SpringBootを使ってライブラリ(jar)を作る際、Mavenで単純に作成するとBOOT-INF配下にclassファイルが配置されるため他のJavaから参照できない。
他のjarと同様にトップフォルダにclassが配置されるようにする対応。

## pom.xmlを変更する
pom.xmlに通常のjarファイルを作成する設定を追記する。
“`

・・・ org.apache.maven.plugins
maven-jar-plugin



create-jar package

元記事を表示

ServletFilter, MDC

# ServletFilter
– Java EEの一部で、簡単な共通関心事の処理に適している。
– initとdestroyメソッドはdefault と作成しなくてもよい。
![스크린샷 2024-01-02 23.16.02 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3567846/a0ae9a78-3b89-348e-3db3-59acefcd08ba.png)

– すべてのログを残す例
“`java
import lombok.extern.slf4j.Slf4j;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.UUID;

元記事を表示

【Java×MySQL】動的WebプロジェクトとDBの連携方法(Eclipse)

# 記事の内容
今回は、javaの動的webプロジェクトとMySQL(Maria DB)との接続について備忘録を作成します。

# 使用端末
■Windouws11
■Eclipse Version: 2022-09 (4.25.0)

# 前提条件
MySQL(Maria DB)はすでにお使いのPC端末にインストールされているものとします。

■ [MySQLのダウンロードサイトはこちらから](https://www.mysql.com/jp/downloads/)

■ [Maria DBのダウンロードサイトはこちら](https://mariadb.org/)

# MySQL(Maria DB)をインストールしたら次にすること
### MySQLのコネクターをダウンロードする。
#### MySQLのコネクターのダウンロード方法

MySQLコネクターの公式サイトへアクセスする。
 [MySQLコネクター公式サイト🔗](https://www.mysql.com/jp/products/connector/)

![MySQLコネクタ1.jpg](ht

元記事を表示

Windows版 Cursorのターミナルでmvnw.cmdが実行できない人向け

# mvnw.cmdが見つからないようなエラーになる
Cursorのターミナルでmvnw.cmdを実行しても↓のようなエラーがでる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964854/b4c5a9b4-97ca-6bc3-d18f-c847978b9479.png)

何やら”mvnw.cmd”が見つからないとか・・・
ちゃんとあるのに・・・

### 解決方法
コマンドの前に「./」を入力しよう!
“`
./mvnw.cmd [options]
“`
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964854/cc9bfcca-9c59-65b2-89cd-484814a75125.png)

実行できた!

元記事を表示

Maven(Apache Maven)とは

# 【Mavenとは】(※読み:メイブン)
Mavenは簡単に言うと、「開発を自動化してくれる便利な物」である。
Mavenは、プログラムをビルドすることを目的として利用する「ビルドツール」のひとつで、主にJavaで書かれたプロジェクトをビルドするために利用する。Eclipseと連携して利用することが多い。

# 【Mavenを使ってできること】
①ライブラリの管理
Mavenの最大のメリットが、「プロジェクトで利用するライブラリを管理できる」という点。
Javaには多くのライブラリが存在しており、それらのライブラリを使うことで高速に開発を進めることが可能。
Mavenでは、XMLに必要なライブラリの情報を記述することで、「そのプロジェクトに必要なライブラリ」を一元管理してくれる。
また、Mavenは依存性を管理する機能も備わっている。

例えば、あるライブラリAを使いたい場合、ライブラリAは、他のライブラリであるBを利用している場合、JavaのプロジェクトにはライブラリAとライブラリBを含める必要がある。
しかし、Mavenを利用した場合には、「ライブラリA」の情報のみを記述する

元記事を表示

JavaでEnumのメソッドを作成する

# 1. はじめに
* JavaでEnumのメソッドを使ってみたい

# 2. 開発環境
* java

# 3. サンプルコード
“`java:
// Enumの定義
public enum enumMonth {
October(“A”, “10”), November(“B”, “11”), December(“B”, “12”);

// フィールドを定義
private String code;
private String value;

// コンストラクタを定義
private enumMonth(String pCode, String pValue) {
this.code = pCode;
this.value = pValue;
}

// メソッド
public static String getValueByCode(String pId) {
for (enumMonth month : enumMonth.values()) {

元記事を表示

Java EE (Java Platform, Enterprise Edition) とは 【別名:Jakarta EE】

※Javaを開発したSun Microsystemsという会社が、その後Orackleに買収されたことから、2018年2月に「Jakarta EE」に名称変更された。

# 【Java EEとは】
Java EEとは、「企業向けのWebアプリケーション開発ができる機能がセットになったプラットフォーム」。ざっくり言うと「APIの集まり」。

・中身は、Java SEにWebアプリケーションの開発に必要なサーバー関係の機能などを追加したもの。
・Java EEの中にJava SEも含まれるため、Java EEでWebアプリケーションの開発をするときにはJava SEのライブラリを使うことができる。
・Java EEで開発された有名なサービスは、Twitter/楽天ECサイト/Evernoteがある。

「JavaSE(Java Platform, Standard Edition)」は、Javaの標準的なアプリケーション開発に必要な機能だけをセットにしたもの。

::: note
つまり…
・Java EEは、「JavaSE+拡張機能」をまとめたもの。
・Java SEは、「Javaの基本

元記事を表示

Java学習 繰り返し処理 for文

javaでは繰り返し処理を行うとき下記の2種類がある。
* for文
* 拡張for文

今回はfor文についてまとめてみる。

# for文
## for文を実行

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

int sum = 0;
for (int i=1 ; i<=10 ; i++){ sum += i; } System.out.println("1から10までの合計は" + sum ); } } ``` 実行結果 ``` 1から10までの合計は55 ``` # for文の使い方 for文の構文 ```java for(初期化式; 条件式; 変化式;){ 実行する処理 } ``` ### for文の「初期化式」「条件式」「変化式」について 初期化式:変数の初期化に使われる。最初に1度だけ実行される。 条件式:処理を繰り返し行う条件を指定する。 変化式:条件式で使用している変数の値を変更するときに使用する。中括弧内の処理が実行

元記事を表示

jUnitを作成するときのTips

テストコードを作成する際のTipsをまとめておこうと思う。

テストコードはしっかり組むべきではあるが、たまにカバレッジを達成するためだけに
テストコードを書く必要のあるタイミングがあるので
それ用にアプローチや作成方法などをまとめた。

## テストクラスの対象で、別クラスをnewしてインスタンス作っている場合

### 案1:インスタンス作成を該当クラスに移す。

“`
// setterでインスタンスを作成するように変える
private クラス 変数名

public void setInstance() {
this.変数名 = new クラス()
}

public クラス getInstance() {
return this.変数名
}
“`

### 案2: mockConstructionを利用して、newInstanceのモックを作る

下記のようにmockConstructionを利用して、new Instanceの部分をモックにすることで一応可能。
一部だけモックにしたい場合は、`withSettings().defaultAnswer(C

元記事を表示

Java学習 繰り返し処理 拡張for文

# 繰り返し処理の種類

javaでは繰り返し処理を行うとき下記の2種類がある。
* for文
* 拡張for文

拡張for文は、Rubyでのeachメソッドに似た機能を持っている。
Rubyのeachメソッドとは書き方が異なるが、使い方は似ている。

# 拡張for文

## 拡張for文を実行

### 配列から要素を取り出す
“`java
class Main {
public static void main(String[] args) {
int[] scores = {1, 2, 3, 4, 5};

for(int score : scores) {
System.out.println(score);
}
}
}
“`

実行結果
“`
1
2
3
4
5
“`

### ArrayListから要素を取り出す場合
ArrayListから要素を取り出す場合も使い方は同じ。

“`java
import java.util.ArrayList;

class Main {
public static void

元記事を表示

Javaのポリモーフィズム

# ポリモーフィズム
動いているインスタンスをインスタンスの元となった型とは別の型で扱える仕組み

ポリモーフィズムが成り立つ条件は以下二つ

継承関係にある
実現の関係にある

企業組織での例

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3530974/1b090e05-642f-a463-afa1-21b6b31f4e72.png)

実装
子クラス1ーエンジニアクラス

“`Engineer.java
public class Engineer extends BuSho {

public Engineer(String name,String busho,String skill) {
super(name,skill,busho);
}

}

“`

子クラス2ーHRクラス

“`HR.java
public class HR extends BuSho {

HR(String name, String skill,String busho)

元記事を表示

GCP Cloud Data fusion機能/実装

# GCPのCloud Data Fusionの概要と機能

## 目次
1. [概要](#概要)
2. [機能/詳細](#機能詳細)
3. [まとめ](#まとめ)

## 概要
GCPのCloud Data Fusionは、エンタープライズデータ統合のための完全マネージドなサービスです。データパイプラインの構築、監視、管理が簡素化されます。Cloud Data Fusionは、異種のデータソースを統合して、高度なデータ変換やトランザクションを行うことができます。

## 機能/詳細
– **データ統合パイプラインの作成**: Cloud Data Fusionは、直感的なビジュアルユーザーインターフェースを提供し、データパイプラインの作成を簡単にします。ビジュアルドラッグアンドドロップエディタを使用して、異なるデータソースやトランスフォーマーションステップを組み合わせてデータフローを構築できます。

– **スケーラビリティと信頼性の向上**: Cloud Data Fusionでは、自動スケーリングがサポートさ

元記事を表示

Java,kotlinの実装で共通で使えるモノ

# Java,kotlinの実装で共通で使えるモノ

↓実装の際に参考にさせて頂いたサイト

「Java8」LocalDateTimeクラスのtruncatedToメソッドで時間を切り捨てるサンプル
https://arkgame.com/2020/11/05/post-160269/

### その他参考サイト

Java8の日時APIはとりあえずこれだけ覚えとけ
https://qiita.com/tag1216/items/91a471b33f383981bfaa

元記事を表示

Androidアプリ開発環境のメモ

# 目的
Android開発環境で詰まらないための備忘メモ書き

# android開発環境について
> まず公式からインストールですが、以下の場合は注意が必要です。

> AndroidStudioではなく、Eclipseで環境整えたい場合は、Javaのバージョンを合わせないと「sdkmanager –list」sdkmanager(以下略SDK)コマンド後にJVMエラーが出る。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/57249/7c9fa98f-5e90-e864-72bc-a6b661b66e0a.png)

## 補足
> もし、環境構築で縛りが特になかったり、訳あって、Javaバージョンをいくつかローカルに落としていて、使いたいSDKとJavaのバージョンが合わせられない場合は、AndroidSudioをインストールして、開発を進めるのもよいかもしれません。

### sdkmanagerって?
> Android SDK のパッケージを表示、インストール、更新、ア

元記事を表示

privateで修飾されたフィールド、メソッドへのアクセス

アクセス方法
publicで修飾されたメソッド経由でアクセス

“` Test.java
package test;

public class Test {

private int num;

public int getNum() {
return num;
}

public void setNum(int num) {
this.num = num;
}

private int calc(int x,int y) {

int f = getNum();
int result = x * y + f;

return result;

}

public int calc2(int w,int z) { //calcメソッドアクセス用

calc(w,z);
//privateには同じクラス内からのみアクセスできる
//引数w,zに入れられた値はcalcメソッドのx,yに入る

return calc(w,z);
}

}

“`

“`Main.java
Test test =

元記事を表示

Java学習 条件分岐

# if文
Javaでのif文
“`java
class Main {
public static void main(String[] args) {
int value = 10;

if (value > 0){
System.out.println(“値は正です。”);
}
}
}
“`
実行結果
“`
値は正です。
“`

## if文の使い方
“`java
if ( 条件式 ) {
条件式を満たす場合に実行する処理
}
“`
### Rubyの記述方法との違い

・条件式を()で囲む必要があること
・行いたい処理を{}で囲む必要があること

## そのほかの条件分岐
Rubyでのelse, elsifはJavaでは以下のように記述する。

“`java
class Main {
public static void main(String[] args) {
int value = 10;

if (value > 0){
System.out.println(“値は正です”);

元記事を表示

javaとpythonの違い

今回の記事はJavaとPythonの違いをコードを示しながら備忘録として残します。
## 問題
https://atcoder.jp/contests/abc336/tasks/abc336_a
### Python
pythonで解いた場合は以下になる
“`python
N = int(input()) # 文字列を読み込み整数に変換する
ans = ‘L’
for i in range(N):
ans += ‘o’
print(f'{ans}ng’)
“`
### Java
Javaで解いた場合は以下になる
“`java
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num = input.nextInt(); // 整数を読み込む
String ans = “L”;
for

元記事を表示

Java 配列 

配列にnullを入れるとNullPointerExceptionが投げられる
**2つ目の要素がどこも参照していないため**
“`java
String [][]array = {{“A”,”B”},null,{“C”,”B”,”D”}};
int total = 0;
for(String[]temp:array) {
total += temp.length;
}

System.out.println(total);

“`
これはok
要素の値として入れているため
“`java
String [][]array = {{“A”,”B”},{“C”,”B”,”D”}};
array[0][0] = null;
int total = 0;
for(String[]temp:array) {
total += temp.length;
}

System.out.println(total);
“`
これもok
[1][0]の値として入っているため
“`java
String [][]ar

元記事を表示

OTHERカテゴリの最新記事