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

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

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ランクレベルアップメニュー アルファベット探し 解答

# 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 解答

# 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タスクに追加されてい

元記事を表示

【v44】auカブコム証券のkabuステーションPUSH APIを受信してCSVファイルへ保存する(先頭カラムにタイムスタンプを追加)

# はじめに

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

PUSH APIを受信して保存したCSVファイルは、売買高やOPのGreeksを対応してから変更されていないが、第1カラムが日付をまたがったときに、前日となる場合がある。

“`
2022-08-09 23:59:58,27860.0,181351.0
2022-08-09 00:00:00,27855.0,181357.0
2022-08-10 00:00:03,27855.0,181510.0
“`

そこで、後から補正を加えたが、生データをソートすることもできないので、保存するときのクライアント側のタイムスタンプを追加する。

# 実装

カラム数が変わってしまうが、とりあえず第1カラムに追加する。

“`java
// 日付をまたぐ時間帯で日付が前日となる問題があるため、クライアントのタイムスタンプを先頭カラムに追加する。
String now =

元記事を表示

Python,Ruby,PHP,Java,JavaScript,PerlのC言語拡張の比較

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

Python,Ruby,PHP,Java,JavaScript,PerlのC言語拡張の比較

# Python

https://qiita.com/pocokhc/items/836a3596df5facd00824https://qiita.com/nabion/items/594fb3316583130a636e

# Ruby

https://qiita.com/suketa/items/ab6b88093de4a54b3b06

# PHP

https://qiita.com/takeyoshi-k/items/2a993eefbe06be047eff

# Java

https://qiita.com/tobita_yoshiki/items/0400f7e393fc0ba2d0cb

# JavaScript

https://qiita.com/mokomium/items/57

元記事を表示

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

# STEP: 36 インクリメント
## 問題
https://paiza.jp/works/mondai/prob60/sort_asc_0

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

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

/**
* nとmの足し算する関数
* 流用性を高める為に足し算する数字は任意で決めれるようにする
*
* @param n 標準入力
* @param m nに足したい数字
*
* @return 足し算結果
* */

元記事を表示

VSCodeのポータブルモードでJavaをビルドする方法

# VSCodeのポータブルモードでJavaをビルドする方法

Javaでは、EclipseやNetBeansが有名ですが、もちろんVSCodeでもJavaを使えます。
本記事では、VSCodeでJavaをビルドする方法についてご紹介します。また、ポータブルモードでセットアップするため環境変数の設定はしていません。
ユーザー名は**mazok**にしているので読み替えてください。

## 環境
私は、以下の表に示す環境で記事を書いています。

| 名前 | バージョン |
| —- | —- |
| Visual Studio Code Portable x64 | 1.72.2 |
| Java SE Development Kit 19 | jdk-19 |

:::note info
本記事で使用する、VSCodeの拡張機能である、Language Support for Java(TM) by Red Hatでは、[About the Java 17 requirement](https://github.com/redhat-develope

元記事を表示

KeyCloakについて

業務でAPIサーバーをJava, SpringBootで作成した時、認証・認可サーバーとしてKeyCloakを使用しました。その際、学んだことを備忘録としてここに残しておきます。

【KeyCloakとは何なのか?】
1.KeyCloakとは、シングルサインオンやAPIアクセスの認証・認可制御を実現する、Javaベースのアイデンティティ・アクセス管理ソフトウェアです。

【KeyCloakをなぜ使うのか?】
1.ユーザーのデータを利用したいクライアントアプリケーションと、ユーザーデータを管理するリソースサーバーがあったとします。イメージとしては、フロントエンドがクライアントアプリケーション、バックエンドがリソースサーバーに該当します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2919458/c84e1f16-c447-adb9-ea23-61bd54a95981.png)

2.クライアントアプリケーションは、エンドポイントにアクセスしてAPIと必要なデータをやり取りします。し

元記事を表示

Bean バリデーションが効かなかった話(1 errorsField error in object validation)

JavaのフレームワークSpring bootでBean バリデーションを実行した際にバリデーションが効かなかったのでいろいろと調べました。

## やりたいこと

フロントで入力した値をList型のformでバインドして指定したフォーマット(@DateTimeFormat(pattern = “yyyy/MM/dd HH:mm :ss”))の通りに値が入らなかったらエラーを出すという処理です。

## コード

“`java:workUser.java
@Data
public class WorkUser {
private int id;
private String userName;

@DateTimeFormat(pattern = “yyyy/MM/dd HH:mm:ss”)
private LocalDateTime startTime;

@DateTimeFormat(pattern = “yyyy/MM/dd HH:mm:ss”)
private LocalDateTime finishTime;
private int workF

元記事を表示

Azure FunctionsからMySQLに接続する~Java編~

# 対象者

– Azure FunctionsからAzure Database for MySQLに接続してみたい方
– Javaで開発したい方
– コマンドベースで操作したい方

# 概要

この記事では以下の内容について扱っています。
基本的にコマンドベースで進めていきます。

– Azure Database for MySQLフレキシブル サーバー のリソース作成
– Azure FunctionsからMySQLに接続
– 【おまけ】Azure FunctionsでAPIキーを使用する

## 前提

前回投稿した記事「[Azure FunctionsでAPIを作る~Java編~](https://qiita.com/fsdg-nagumo/items/5eec1e9b66d33e3f4687)」の続きとなります。
Azure Functionsの開発環境構築、デプロイ方法については記事をご参照ください。

<前回のあらすじ>

1. Azure Functionsのローカル開発環境構築(Java)
2. 適当なダミーJSONデータを返すAPIを

元記事を表示

【Java】拡張for文を入れ子的に2度使用する際の挙動を調べました。

 paizaラーニングで2、3日前からJava入門編を始めた完全初心者が書いておりますゆえ、お手柔らかにお願いします。

なぜ書こうと思ったか

 Java入門編:5の2次元配列を学習していたところ、いきなり拡張for文を2回使う手法がさらっと出てきてびっくりしたからです。

コード内でやること

①teamsと名付けた二次元配列に、それぞれ{a,b,c}、{d,e,f}、{g,h,i}を入れ、

②拡張for文を使って、それらの中身を全部printlnにて出力するということをします。

③その際に、拡張for文の中で、配列がどこからどれだけ取り出され、どう動くのかを出力結果を解釈して、知ろうと思います。

~~~Java:拡張for文
public class Main {
public static void main(String[] args) {

//2次元配列に中身を入れる
String[][] teams = {{“a”,”b”,”c”},{“d”,”e”,”f”},{“

元記事を表示

固定文字列を返すAPIをDockerでデプロイする

前回仮想マシンを作ったので、今回は固定文字列を返すAPIを作り、AppServiceにデプロイします。色々と設定や制約があるかもしれないのでDockerをデプロイする形が一番ハマる要素がないかと思っています。

## APIを作る
SpringBootの公式に手順があったのでVisualStudioCodeで作る

https://spring.io/guides/gs/spring-boot-docker/

“`java:Application.java
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestControl

元記事を表示

Bランクレベルアップメニュー 文字列の重複カウント 解答

# STEP: 30 文字列の長さ

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

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

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

// 文字数を取得
int length = line.length();
System.out.println(length);

sc.close();
}
}
“`
## 結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918186/60

元記事を表示

Lombokでgetterのプレフィクスを削除する方法!(maven)

## やりたいこと

↓ このようなクラスがあった場合…
“`java:Boo.java
@AllArgsConstructor
@Getter
public Boo {
private int id;
}
“`
↓ 以下コードでIDが取得可能ですよね!
“`java
new Boo(1).getId(); // 1
“`
↓ それをこうじゃ!
“`java
new Boo(1).id(); // 1
// ↑ getプレフィクスがない! 出力は上のコードと一緒
“`

## やり方

src > main > java下にlombok.configを作成し、下記1文を追加するのみです!

“`config:lombok.config
lombok.accessors.fluent = true
“`

## 注意

また、上記を行うとsetterもプレフィクスがなくなることにご注意ください!

“`java:Boo.java
@AllArgsConstructor
@Getter
@Setter
public Boo {

元記事を表示

【初心者専用】Java8のStreamについて

## 0. 最初に
開発経験のない新入社員が、Javaを研修で学んだはずなのに見たこともない関数インターフェースに悩まされ、さらには上司の開発陣はもれなくムキムキで泣いているので、自己研鑽と同郷のために記事を投稿する

## 0.5 APIとは
そもそも、APIは言葉はよく聞きますが、意味をしっかり理解している新人はいますか?私もそこまでしていなかったので、調べました。
「API」とは、「Application Programming Interface」の頭文字です。
アプリケーションをプログラムするうえでのインターフェースと言われれば、多少ピンとくるかもしれませんが、
わかりやすくいうと、ソフトウェアやアプリケーションなどの一部を外部に向けて公開することにより、第三者が開発したソフトウェアと機能を共有できるようにしてくれるもので、外部とのやり取りを行い、よりシステム構築を簡易的に汎用的にしているみたいです。
要するに我々の味方です。

ですから、ここから先に説明するStreamもコードの可読性を上昇させたりと、いいことしかないというわけです

## 1. Stream API
St

元記事を表示

ラムダ式とStreamAPI

# ラムダ式とは
ラムダ式とはjava8から使用できるようになったコーディングの文法のことである。
関数型インターフェイスを実装したクラスのインスタンスを短い記述で作成することが可能になっている。

# 関数型インターフェイスとは

関数型インターフェイスとは抽象メソッドを1つだけ持つインターフェイスのことである。
抽象メソッドを1つだけ持つという特徴がラムダ式での記述を可能にしている。(型推論)

関数型インターフェイスは標準APIでいくつか用意されているが自作することもできる。
詳しくは後半で記載する。

# ラムダ式の構文

まずはラムダ式で書いたコードと書いていないコードを見て、どのような構文か確認していく。

“` ラムダじゃないよ.java

public interface InterfaceSample {
public String method(String str);
}

public class Sample {
public static void main(String[] args) {
InterfaceSample ifs = n

元記事を表示

OTHERカテゴリの最新記事