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

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

Java のレガシーなサービスで使ってきた Aurora MySQL v1 を v3 にバージョンアップした話

2022 年 2 月に Amazon Aurora MySQL 互換版のバージョン 1(以降「Aurora MySQL v1」と表記)の EoL 発表を受けて、Java のレガシーな Web サービスで使ってきた Aurora MySQL v1 を v3 にバージョンアップした記録です。

※後日 Zenn で本にまとめる予定なので、この記事は要約版となります。

## 対象サービスの概要

– Java の 15 年 over モノのレガシーなシステム
– その上に Web アプリケーションが複数
– 5 年前 AWS に Lift & Shift したのを機に DB を MySQL 5.5 から Aurora MySQL v1 に移行
– DB の接続には MySQL Connector/J 5.1 または 8.0(一部)を使用

## なぜ Aurora MySQL v2 ではなく v3 に移行したのか?

いくつか理由はありますが、主に以下の 2 点が大きいです。

– 本家 MySQL 5.7 の EoL が迫る中、**一旦 v2 を挟むと最悪の場合 2 年で 2 回バー

元記事を表示

paizaラーニング Bランクレベルアップメニュー 文字列を切り取る Java 解答

# STEP: 12 文字列の分割
## 問題
https://paiza.jp/works/mondai/prob60/substring_0

## 解答
“`java:step12.java
import java.util.*;

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

Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
System.out.println(sc.next());
}
}
}
“`

## 結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918186/6cf3f656-318a-7d4b-2d17-421dad0399f2.png)

# STEP: 13 整数の足し算
## 問題
https://paiza.jp/w

元記事を表示

paizaラーニング Bランクレベルアップメニュー 足すか掛けるか Java 解答

# STEP: 7 インクリメント
## 問題
https://paiza.jp/works/mondai/prob60/total_value_0
## 解答
“`java:step7.java
import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int total = addStandardInputAndM(n, 1);
System.out.println(total);
}

/**
* 標準入力とmの足し算をする
*
* @param n 標準入力
* @param m 足したい数字
*
* @return 計算結果
*/
public static int add

元記事を表示

paizaラーニング Bランクレベルアップメニュー 5以上の整数の合計 Java 解答

# STEP: 1 インクリメント
## 問題
https://paiza.jp/works/mondai/prob60/5_or_more_0

## 解答
“`java:step1.java
import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(addUp(n, 1));
}

/** nにmを足した数値の計算関数
*
* @param int n 標準入力の値
* @param int m 標準入力に足したい値
* @return 足し算の結果
*/
public static int addUp(int n, int m){
return n

元記事を表示

paizaラーニング Bランクレベルアップメニュー 占い Java 解答

# STEP: 57 連想配列(辞書)を使う
## 問題
https://paiza.jp/works/mondai/prob60/fortune_telling_0

## 解答
“`java:step57java

public class Main {
public static void main(String[] args) {
HashMap map = new HashMap();
map.put(“Kyoko”, “B”);
map.put(“Rio”, “O”);
map.put(“Tsubame”, “AB”);
map.put(“KurodaSensei”, “A”);
map.put(“NekoSensei”, “A”);

System.out.println(“Kyoko” + ” ” + map.get(“Kyoko”));
Syst

元記事を表示

Java JDBCの基本構文

研修の中でJDBCに関して学びましたが、わかりにくくかつ覚えることが多いように感じたのでまとめてみました。

パッケージのインポート

“` Java
import java.sql.Connection; //DB接続のためのインタフェース
import java.sql.DriverManager; //ドライバのロード
import java.sql.PreparedStatement;//プリペアードステートメント(SQL文をコンパイルするやつ)
import java.sql.ResultSet;//SELECT文を実行した際取得するデータの型
import java.sql.SQLException;//例外
“`

JDBCドライバのロード

“`Java
Class.forName(“ドライバの名前”);
“`
| DBMS | ドライバクラスのFQCN |
| ————– | ————————–

元記事を表示

Python,Ruby,PHP,Java,JavaScript,PerlのMySQLの比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,PerlのMySQLの比較

# Python

https://qiita.com/ab-boy_ringo/items/f05bb6329f51e1632965

# Ruby

https://qiita.com/hukuro310/items/ec91beaecd11157e0640

# PHP

https://qiita.com/ab-boy_ringo/items/8274c66b6692966fdc55

# Java

https://qiita.com/namari/items/50d9aac0faf6b7e7b314

# JavaScript

https://qiita.com/PianoScoreJP/items/7ed172cd0e7846641e13

# Perl

https://perlzemi.co

元記事を表示

Spring_web開発でよく使うメソッド

addAttribute(thymeleafで参照するkey, thymeleafに渡したいオブジェクト)
:thymeleafにオブジェクトを渡すことができる。

元記事を表示

【logic,util】ファイルロックに関する見直し

# はじめに

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

当初、Jenkinsからプロセス起動されるので、REST APIへログインした際に発行されるトークンをファイルで管理するため、ファイルロックを使って、排他制御をしていた。
毎回プロセス起動すれば、メモリ解放も、ネットワーク解放も、ファイルロックの解放も、何もしなくても、自動で後片付けしてくれます。

最近、毎回プロセス起動をするのも、JavaVMの初期化のオーバーヘッド、短時間の実行にJITが効くのかどうか、ということから、軽いServlet APIレベル(Spring未使用)でHTTP Get/Postで処理実行をトリガーするWebアプリに移植したところ、特にファイルロック周りに手抜きがあったので、一つづつJUnitテストを作りながら改善していく。

# 全体のクラス構成

main()から近い部分から、最も深い部分まで、深い方からクラスを並べると以下の順となる(古い

元記事を表示

androidってkotlinのactivityからjavaのactivityって遷移できるんだ….

# 要約
気になって試したらタイトルのことができた。
# 本題

Android Studioでは、まず最初にアクティビティを作る際にkotlinかjavaかを選択すると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321651/2a05f77e-9ecf-bb4d-c438-e5e3d09dd25e.png)
*本名使っちゃっているので適当にPathは書き換えてます。

自分はここで選択しているため、Android開発ではできないのかと思っていましたが適当にButtonでkotlinとjavaのActivity間を遷移するアプリを作ってみたらできました(コード等は参考にしたQiita記事のコピペです。)
参考したQiita記事
https://qiita.com/sato-na/items/aebbe482bf40db1fd3b0

まぁkotlin自体はjava互換性があるから動くのは知っていたが、検索してもjavaのactivityが動くのはわからなかったのでメモ程度に

元記事を表示

gRPCを使ってあそんでみる サービス起動編

# gRPCを使ってあそんでみるの目的
ログデータを永続化するgRPCサービスを立ち上げログを記録する。

## 今回のお題
ログを記録するgRPCサービスを構築し起動する。

## ■事前環境
・Windows10 バージョン21H2
・IntelliJ IDEA 2022.1.4(Community Edition)
・OpenJDK Runtime Environment Zulu17.36+17-CA (build 17.0.4.1+1-LTS)
・Gradle

## 1.新規プロジェクトを作成

## 2.gRPC用ライブラリをプロジェクトに追加
追加ライブラリーフォルダー “libs” をプロジェクト直下に作成。
[環境構築編](https://qiita.com/shigemax999/items/cc4a9f2c64e989ea428e “環境構築編”)で作成したJARファイルをlibsフォルダにコピー。
build.gradleを編集しlibs配下の.jarファイルをプロジェクトに追加するように変更。
~~~ build.gradleの必要箇所を抜粋
depende

元記事を表示

BPMと音符の間隔からn打/秒のnを求めるプログラム

初投稿です。
投稿のテストとして簡単なプログラムを作ってみました。
プログラムの内容としては太鼓の達人というゲームである音符の間隔(16分や8分など)が出てきた際に秒速にいくら叩く必要があるかというものです。
例えば、BPM200の曲(Rotter Tarminationやそつおめしき)で24分が出てきた際には秒速20打必要であるとされています。
ちなみにこれはBPM300の曲の16分と秒速の値が同じであり、以下のような式が成り立つと考えました。

:::note info
叩く回数/秒 = BPMの速さ*(音符の間隔/16)/15
:::
小数点1桁を四捨五入し整数で表現した値とdouble型でそのまま表現した値2つを出すようにしてみました。
0

元記事を表示

paizaラ-ニング Bランクレベルアップメニュー五目並べ Java 解答

# STEP: 51 文字列の出力

## 問題

https://paiza.jp/works/mondai/prob60/tic_tac_toe_0

## 解答

“`java:step51.java

import java.util.*;

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

Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()){
String line = sc.nextLine();
System.out.println(line);
}
}
}

“`

## 結果

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918186/fca619e3-a6c4-ac1c-cf49-90320fc946a2.

元記事を表示

Python,Ruby,PHP,Java,JavaScript,PerlのSQLiteの比較

Qiita > プログラミング言語の比較

Python,Ruby,PHP,Java,JavaScript,PerlのSQLiteの比較

# Python

https://qiita.com/flcn-x/items/69481d31211421e21f21

# Ruby

https://qiita.com/akito_tameto/items/868e3805dc01c7bef6ef

# PHP

https://qiita.com/39_isao/items/a5b4940138bced936de0

# Java

https://qiita.com/tsweblabo/items/39bdd73a910417a9a8df

# JavaScript

https://qiita.com/zaburo/items/a155cbc02832b501a8dd

# Perl

https://perlzemi.com/blog/20

元記事を表示

Javaのラムダ式の覚書

Java(jdk1.8以降)のラムダ式について、簡単にまとめたものです。

# 1. ラムダ式の例
以下のインターフェースがあるとします。

“`java:Calculation.java
package test;

@FunctionalInterface
public interface Calculation {
public int add(int x, int y);
}
“`

### 1.1. ラムダ式を使用しない場合(匿名クラス)
ラムダ式を使用しない場合、上記のインターフェースを使用するには、以下のように匿名クラスでaddメソッドをオーバーライドして呼び出します。

“`java:NotLambdaMain.java
package test;

public class NotLambdaMain {
public static void main(String[] args) {

// 匿名クラスでメソッドをオーバーライド
Calculation obj = new Calculation() {

元記事を表示

【備忘録】現場でWebhookを送信することがありました。〜HTTPリクエストにJSONを乗せてPOSTする方法〜

# 挨拶
初めての投稿になります。

初回は現場でJavaをつかってWebhookを叩くことがありましたので、備忘録として残します。

題名にある通りHTTPリクエストにJSONを乗せてPOSTする方法を共有します。

初心者の私には一見難しそうに思いましたが、書いてみると単純にHEADERとBODYに要素をつめてWebhookをHTTPリクエストのPOSTで流してあげるだけになります。
(こんな認識ですが。。。間違ってたらご指摘ください:bow_tone3:)

私と同じく開発ビギナーの方のご参考になれば幸いです!

# 前提・準備
・JavaでHTTPリクエストを用いて**JSON**をPOSTで送信します。
・実行したいWebhookのURLを準備します。
・BODYに詰めるJSONコードを用意します。(jsonファイルは作成せずにString型で作成して直接渡します)
・事前に同じファイルにHTTPクライアントを生成するメソッドを作成しています。

まずは実行したいWebhookのurlとJsonコードを用意します。(後述のコードに引数として使います)
“`java
St

元記事を表示

paizaラーニング Bランクレベルアップメニュー アルファベット探し Java 解答

# STEP: 47 文字列の出力

## 問題

https://paiza.jp/works/mondai/prob60/alphabets_large_or_small_0

## 解答

“`java:step47.java

import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNextLine()){
String line = sc.nextLine();
System.out.println(line);
}
sc.close();
}
}

“`

## 結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918186/686308

元記事を表示

paizaラーニング Bランクレベルアップメニュー 文字と整数の組のソート2 Java 解答

# STEP: 40 インクリメント

## 問題
https://paiza.jp/works/mondai/prob60/sort_add_0

## 解答
“`java:step40.java
import java.util.*;

public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int answer = addUp(n, 1);
System.out.println(answer);
sc.close();
}

/**
* n+mの足し算関数
* 流用性を持たせる為にmを引数としました
*
* @param n 標準入力の足し算したい数字
* @param m nに足し算したい数字
*
* @ret

元記事を表示

ApachePOIでJavaからExcelを読み込む(Eclipse)

# はじめに
Javaでエクセルファイルの読込をする方法を説明します。
かなりつまづきましたが、なんとかうまくいったのでこの方法を忘れないようにメモ代わりとして。
ただし、この方法はいろいろ試していたらなんか上手くいった程度のものなので間違っているかもしれないことをご了承ください。
# 1.ApachePOIのダウンロード
[公式サイト](https://poi.apache.org/download.html)からApachePOIをダウンロードします。
![apachepoiサイト画像.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2586452/f8d07ce0-2dda-a2f0-7c43-663b04463ef4.png)

ダウンロードしたZipファイルを解凍して適当なフォルダに入れます。
# 2.Eclipseのビルド・パスの設定
・何かしらのプロジェクトを選択した状態で右クリック
>プロパティ>Javaのビルドパス
![2.png](https://qiita-image-store.s

元記事を表示

gRPCを使ってあそんでみる 環境構築編

# gRPCを使ってあそんでみるの目的
ログデータを永続化するgRPCサービスを立ち上げログを記録する。

## 今回のお題
IDL(Interface Description Language)からRPC用のJavaソースを生成する環境を構築する。

最後にJarファイルを作成する。

## ■事前環境
・Windows10 バージョン21H2
・IntelliJ IDEA 2022.1.4(Community Edition)
・OpenJDK Runtime Environment Zulu17.36+17-CA (build 17.0.4.1+1-LTS)
・Gradle

## 1.新規プロジェクトを作成

## 2.IDLコンパイル用Gradleタスクの追加
### 2.1.com.google.protobufプラグインを追加
“`build.gradleの必要箇所を抜粋
plugins {
id ‘java’
id “com.google.protobuf” version “0.9.1”
}
“`

### 2.2.Gradleタスクに追加されてい

元記事を表示

OTHERカテゴリの最新記事