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

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

EC2 AmazonLinux2 LAMPJ (bash)

vi Amazon2LAMPJ.sh

“`bash
#git hub
sudo yum -y install git

#古いphpとmriadbを削除、その後にアップデート
sudo yum remove php*
sudo yum remove mariadb-libs
sudo rm -rf /var/lib/mysql

# MATEパッケージをインストールします。
sudo amazon-linux-extras install mate-desktop1.x

# MATE をデフォルトのデスクトップとして定義します。またすべてのユーザーに対して MATE を定義します。
sudo bash -c ‘echo PREFERRED=/usr/bin/mate-session > /etc/sysconfig/desktop’

# TigerVNC をインストールします。
sudo yum install tigervnc-server

#Extraでインストール
sudo amazon-linux-extras enable php7.4 -y
sudo yum cl

元記事を表示

Javaの構成、クラス

## Javaのプログラムの構成
・Javaのプログラムは**クラス**の集まり。
・クラス名とファイル名は同じにする。
・クラスの内容を “{” から “}”の間(**ブロック**)に書く。
・処理のまとまりを**メソッド**と呼び、Javaは**mainメソッド**(public static void main(String args[]))から実行される。
・一つ一つの処理分は最後に**セミコロン**(;)で終わる。

“`:基本構文
 class クラス名{
  public static void main(String args[]) {
処理分
}
}
“`

## クラスの宣言
・クラスとは簡単に言えば「これからプログラム処理を開始します」と宣言すること。
どんなプログラムを開始するのか、その種類を宣言するためにクラスを用いる。
Javaのクラスは設計図によく例えられる。
例えば、家であれば「人が住む」、車であれば「人を乗せて走る」ことをコンセプトに、設計図が作られる。
Javaのクラスも同様に「Javaに何をさせるのか」を、クラスの中に記述し

元記事を表示

Java データ型(基本データ型、参照型)

## データ型
データの種類の事を指す。
変数宣言の時に入れ物の形を指定する為に使う。

“`
▶︎ データ型の種類
|–①基本データ型
| |–整数
| |–小数
| |–文字
| |–真偽値
|
|–②参照型
|–文字列
|–配列
|–etc
“`

## 1,基本データ型
データ型の種類は3000種類以上あると言われているがその中で基本的な整数や少数、文字、真偽値をまとめたものを**基本データ型**(プリミティブ型)と呼ぶ。
基本データ型は全部で8種類でそれ以外は参照型になる。
それぞれデータ型のサイズによって細かく分類され、箱の大きさの桁数が増えると表現できる値の幅も広げることが出来る。
メモリに直接書き込まれる具体的なデータ値(数値や文字)を代入することが出来る。

| 種類 | データ型 | データの幅(箱の大きさ) | データの表現範囲 |
| :—: | — | — | — |
| 整数 | byte | 8ビット | -128 ~ 127 |
| – |

元記事を表示

paizaラーニング データセット選択メニュー 集合の結合 Java 解答

# STEP: 13 集合の探索
## 問題
https://paiza.jp/works/mondai/data_structure/data_structure__set_step1

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

public class Main {

private static final String YES = “Yes”;
private static final String NO = “No”;

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

String result = NO;

for(int i = 0; i < n; i++){

元記事を表示

#3 SpringとMySQLを使用したログイン機能 その1

# #3 SpringとMySQLを使用したログイン機能 その1

# 前回まで
第1回、第2回の記事を載せておきます。
これまで行ったことを簡単にまとめておくと

**第1回の記事**
– SpringとMySQLの接続設定
– 登録、更新機能の追加

**第2回の記事**
– 削除機能の追加
– バリデーション
– メッセージ表示

の4つになります。

**第1回の記事**

https://qiita.com/Jackoguro/items/fd4f6a0744718fe3ba69

**第2回の記事**

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

# 今回行うこと
ログイン機能を実装するために今回は以下の流れに沿って進めていきます。
1. 画面レイアウトを作成
1. データを保持するテーブルを作成
1. サービス処理の作成
1. 作成した画面レイアウトを「thymeleaf」を用いて動的にしていく
1. コントローラーの作成

全て書くと文量がとても多くなってしまうので、今回は「1. 画面レイアウトを作成

元記事を表示

paizaラーニング データセット選択メニュー 商品の検索 Java 解答

# STEP: 8 数値の出現率
## 問題
https://paiza.jp/works/mondai/data_structure/data_structure__dict_step1

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

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

Scanner sc = new Scanner(System.in);
int n = sc.nextInt();

int[] occurrences = new int[10];
for(int i = 0; i < n; i++){ int number = sc.nextInt(); occurrences[number]++; } for(int i = 0; i < oc

元記事を表示

配列

## 配列
配列とは、同じ型の複数ある値をまとめて一つとして扱うことができるもの。
同じ型の複数の値をひとつの変数として扱うことで、多くの値をまとめて扱うことが出来る。また、配列から特定の値を取り出したり、順番を入れ替えることもできる。

配列の中に格納された値は**要素**(入れ物)と呼ばれ、配列の要素は順番に並べられていて、特定の要素を書きかえたり取り出したりもできる。

## 一次元配列
同じ型の入れ物を1列に並べたものを、**1次元配列**と言う。
配列を使用するには、次の2つの手順が必要になる。
“`:基本構文
型名[] 変数名;  ←①配列を表す変数を準備する(配列を宣言)
変数名 = new 型名[要素の数]  ←②要素(入れ物)を作成する(要素を確保する)
“`
配列は、 new というキーワードを使って要素を確保して、初めて使用できるようになる。

“`:例文(要素を5つ格納するための配列)
int[] scores;
scores = new int[5]
“`
1行目では、int型の配列を表す変数scores を宣言し、2行目では、5 つ分の要素を確保した

元記事を表示

paizaラーニング データセット選択メニュー 文字列の配列 Java 解答

# STEP: 5 とても大きな数値の入力
## 問題
https://paiza.jp/works/mondai/data_structure/data_structure__string_step1

## 解答

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

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

## 結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918186/b2007783-df4b-9169-b8bf-29abde587e3b.png)

# STEP: 6 とても小さな数値の入力
##

元記事を表示

App Service における Tomcat アプリケーションへの war ファイルのデプロイについて

# App Service 上で稼働する、Tomcat アプリケーションへのデプロイ時に使用する Kudu API がよくわからない!

App Service に war ファイルをデプロイする API として `/api/wardeploy` と `/api/publish` の2種類があり、`/api/wardeploy` のほうがおそらく歴史が古い。
2022年10月現在では、[公式ドキュメント](https://learn.microsoft.com/en-us/azure/app-service/deploy-zip?tabs=api#deploy-warjarear-packages)では`/api/publish`を使うように紹介されており、AZ CLI も内部的には、`/api/publish` を使うようになっている。[^1]
なお、`/api/wardeploy` については、Kudu のリポジトリに [WiKiページ](https://github.com/projectkudu/kudu/wiki/Deploying-WAR-files-using-ward

元記事を表示

SQL文を自動生成するプログラムをつくる③

# はじめに
この記事は[「SQL文を自動生成するプログラムをつくる②」](https://qiita.com/NotNor/items/1d49ac56a80df7685333)からの続きです。

# エンティティ(偽) (続き)
 当初は、エンティティ(偽)への値の代入を標準入力で行おうと思っていました。しかし、DB名やテーブル名ならまだしも、属性名や値は量が多くて標準入力では~~めんどくさい~~、もとい現実的ではないと前回感じました。
 そこで、標準入力で値そのものを受け取るのではなく、属性名や値が格納されているファイルのパスを受け取って、それを読み込むことにすれば、いくらか実用的になると考え付きました。そこで思い出したのがcsvファイルです。

## csvファイルの利用
 csvファイルとは、カンマ(,)区切りでデータが格納されているファイルのことです(下図参照)。これを利用すればFiles.readAllLinesメゾッドとsplitメゾッドで簡単に値が取り出せます。
![image.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

OpenJ9系VMのダンプファイルからヒープダンプを取り出すメモ

クラッシュして落ちると
core.20221028.xxxxxx.xxxxx.xxxx.dmp
のようなコアダンプ出力されるので、これを基に解析したときのメモ。

# jdmpview
javaインストール先のbinの下にあるので起動する。
“`
jdmpview -core core.20221028.xxxxxx.xxxxx.xxxx.dmp
“`
コマンドを叩きヒープダンプをファイルに出力する。
“`
> heapdump
“`
core.20221028.xxxxxx.xxxxx.xxxx.dmp.phd
というファイルが作成される。

# コアダンプ解析
Eclipse Memory Analyzer Tool の拡張版で先ほどのphdファイルを読み込む。
https://www.ibm.com/support/pages/eclipse-memory-analyzer-tool-dtfj-and-ibm-extensions

元記事を表示

SpringとMySQLでデータ削除、メッセージ、バリデーション機能の実装

# 前回まで
前回はSpringとMySQLの接続設定を行い、登録・更新機能を実装するところまで行いました!
前回の記事を読んでいない人は是非そちらを先に読むことをおすすめします!

https://qiita.com/Jackoguro/items/fd4f6a0744718fe3ba69

第2回目となる今回の記事は、前回作成した機能の修正、新たな機能を追加を行っていきます。

# 成果物
今回作成した成果物で前回との変更点を記載します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/36b0976e-6220-69dd-7fd0-f4529464b339.png)
登録完了のメッセージ表示

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/5ed828eb-07ad-90dd-4b76-5bc9a6cd0a4d.png)
更新完了のメッセージ表示

![

元記事を表示

【個人的メモ】重複確認編 〜 リストとマップの重複確認 〜

# 目次
 [1.リストの重複確認](#1-リストの重複確認)
 [2.マップの重複確認](#2-マップの重複確認)

# 1. リストの重複確認
例)確認用果物リストの果物のうち、果物リストと重複しないもののみ、果物リストに追加。
“`java
package jp.co.study.sample;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Qiita {
public static void main (String args[]) {
// 果物リスト
List fruitList = new ArrayList();
fruitList.add(“りんご”);
fruitList.add(“ぶどう”);
fruitList.add(“なし”);

// 確認用果物リスト
List confirmFruitList

元記事を表示

【個人的メモ】リスト編② 〜 入れ子のリスト・リストの要素除外 〜

# 目次
 [1.入れ子のリスト](#1-入れ子のリスト)
 [2.リストの要素除外](#2-要素除外)

# 1. 入れ子のリスト
実際の使用例。

“`java
package jp.co.study.sample;

import java.util.ArrayList;
import java.util.List;

public class Qiita {
public static void main (String args[]) {
// なんでもリスト
List> whateverList = new ArrayList>();

// 魚リスト
List fishList = new ArrayList();
fishList.add(“あじ”);
whateverList.add(fishList);

// 鳥リスト
List birdList = new ArrayList();
birdList

元記事を表示

SQL文を自動生成するプログラムをつくる②

# はじめに
この記事は「[SQL文を自動生成するプログラムをつくる①](https://qiita.com/NotNor/items/5db7ce4ba1e57eb7fcab)」からの続きです。

# エンティティ(偽)
DBの各値を格納するエンティティ(偽)を検討するにあたって、前提条件を整理しました。

## 前提条件(仮)
– DBの各値とは、「DB名」、「テーブル名」、「属性名」、「値」のことである。
– 各値の型は文字型である。
– DB名以外のほか3つは複数の値を格納する必要がある。
∵テーブルは1つのDBに対して複数存在する可能性があるため
 属性は1つのテーブルに対して複数存在する可能性があるため
 値は1つの属性に対して複数存在する可能性があるため
⇒ 配列またはリストで管理する必要がある。

## 設計
とりあえず、以下のクラス図のようにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2950626/124cc0d6-32e4-8206-6d81-717a3

元記事を表示

Spring Boot + MyBatisで自作TypeHandlerを使う

# 環境
– JDK 17
– Spring Boot 2.7
– mybatis-spring-boot-starter 2.2.2

# やり方
## 型の作成
“`java:Hoge.java
package com.example.entity;

public record Hoge(String value) {
}
“`

## TypeHandlerの作成
`@MappedTypes` を付加するのがポイント。

“`java:HogeTypeHandler.java
package com.example.typehandler;

import com.example.entity.Hoge;

import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedTypes;

import java.sql.CallableStatement;
import java.sql.P

元記事を表示

JavaでデータベースからExcelにデータを書き出す方法

Excel は、大量のデータを分類、構造化、分析、操作するために広く使用されているツールです。データベース内のデータを分析する必要がある場合、まずデータをExcelのワークシートに変換します。今回は、無料の [Free Spire.XLS for Java](https://jp.e-iceblue.com/introduce/free-spire-excel-for-java.html) を使って、**AccessのテーブルからExcelにデータをエクスポートする方法**を紹介します。

– **[データベースのデータをExcelに書き出す](#データベースのデータをexcelに書き出す)**

## 【依存関係の追加】

> **この方法は、無料のFree Spire.XLS for Javaが必要ですので、先にjarファイルをインポートしてください。**

### 1. Maven

Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーションに JAR ファイルをインポートすることができます。

“`XML
<

元記事を表示

【v45】イベントトリガーの結果を統合してソートして保存する

# はじめに

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

47番目の記事でイベントトリガーを作成した際に、x分足とテクニカル指標の組み合わせを2重ループで実行し、それぞれをユニークなファイル名で保存していた。ファイル数が最大8×8=64個ほど出力されると、チェックするのが面倒なので、銘柄ごとに統合して1つのファイルに保存する。

# ゴール

v45でリアルタイム監視ツールを最新のマージツールに対応しているので、まず1銘柄のみ、テクニカル指標のみに対応する(Tickデータは未対応)。
後から、バッチ処理の各ツールを対応する。その際にv45にコピーする。

# 実装

execute()のファイルポーリングしている処理の末尾に追加する。
起動時にファイル削除しているため、eventSetが空の状態と整合が取れている。
eventListはループごとに追記する行の差分のため、毎回クリアする。

“`java
while (t

元記事を表示

SQL文を自動生成するプログラムをつくる①

# 動機・目的
– 11月の基本情報技術者試験に向けてDBの復習したいなぁ
– 大学の課題でDBを使用するからSQL文を作る必要があるけど、扱うデータが多くてめんどくさいなぁ

⇒ そうだ!SQL文を自動生成するプログラムを作ろう!

というわけで、そのプログラムを作る過程の備忘録を更新していきます。

:::note warn
Java初心者なので実用性は期待しないでください。
:::

# プログラムの概要(仮)
このプログラムはDB名、テーブル名、属性名、値の各値からSQL文を自動生成するプログラムであり、以下の機能を持ちます。
– コマンドプロンプトにおいて実行する
– 実行完了時に、SQL文が記述されているテキストファイルを得る

## 課題
1\. SQL文を自動生成する際の、DBの各値の取得方法
2\. DBの各値を格納するエンティティクラスのようなもの(エンティティ(偽)とする)の検討

## 解決方法
1\.について:標準入力で受け取ることにした
2\.について:[②へ続く](https://qiita.com/NotNor/items/1d49ac56a80df76

元記事を表示

[Spring Boot] SQLの実行時間をアノテーションをつけるだけで計測できるようにする

# Repositoryに定義した関数の実行時間とかをログに出力したくなった
今回は開発中にDBへアクセスしている関数やそれにかかわる関数の実行時間を知りたいというシーンがあり、確認したい関数全部に開始時刻をとって終了時刻をとって計算するコードを追加する。。。。などという面倒な実装はしたくなかったため、何かスマートな実装はないものかと考えました。

# 独自に定義したアノテーションが付与されている関数にだけ関心を持つAdviceを実装して実現する

##### まずはアノテーションを定義する
“` CheckLog.java
package com.example.app;

import java.lang.annotation.ElementType;
import java.long.annotation.Target;

// メソッドに付与するアノテーションを定義
@Target(ElementType.METHOD)
public @interface CheckLog {

}
“`

##### Adviceの実装

“` AspectComponent.java

元記事を表示

OTHERカテゴリの最新記事