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

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

JARファイルとは

# 「JARファイル」という言葉
SprigでWebAPIを作ろうと参考サイトを見ながら作成を進めていくと
「JARファイル」という言葉が出てきた。

# JARファイルとは
簡単に言うとJavaファイルをzip形式で圧縮したもの。
でも普通の圧縮ファイルが解凍して展開しなければ中身を使えないのに対し、
JARファイルは圧縮ファイルのまま中のJavaファイルを実行できる。
「JAR」の名前の由来は「Java Archive(記録、書庫)」から。

# 使い方
JARファイルの作成から実行までは以下のサイトが参考になります。
https://www.tech-teacher.jp/blog/java-jar/

# 実行までの流れ
適当なテキストエディタでJAVAを書いて、コマンドでクラスファイルにコンパイルします。
さらにjarコマンドでJARファイルに圧縮します。
事項にはマニフェストファイルが必要なのでこれを作成。
最後にjavaコマンドで実行します。

# 調べてみて
1年以上javaに触れているが、実行方法については詳しく知らなかった。
他の言語でも実行方法についてあまり勉強で

元記事を表示

Mpo100

https://www.jojo-effekt.info/wp-content/slot88/mpo100/

元記事を表示

Thymeleafで独自UtilityObjectを作る

# 概要
Thymeleaf側で金額の数値(int)にカンマを入れたい。(例:1000→1,000)
もちろんThymeleafのデフォルトのUtilityメソッド`#numbers.formatInteger`で可能なので適用箇所が少なければ下記で十分だと思う。

“`
${price < 1000 ? price : #numbers.formatInteger(price, 3, 'COMMA')} ``` ただ、適用箇所が多いとコピペするにしても各所でいちいち三項演算子を書きたくない。そこで金額専用の独自Utilityメソッドを作って下記のように書けば上記の三項演算子を書いたように出力したい。 ``` ${#customInt.price(price)} ``` ちなみに`price < 1000`をしないと、100未満の場合050みたいに0埋めされてしまう。なので条件式は`price < 100`でも良いと思う。 # 環境 - Java 1.8 - SpringBoot 2.2.1.RELEASE - Thymeleaf 3.0.11.RELEASE # サンプル

元記事を表示

APIにGETリクエスト送付時のテストコードを書く

# やりたいこと
・APIにGETリクエストを送るプログラムのテストを書く
・API参照箇所をMockにする

### 以下記事を参考にさせていただきました
Mockito 3 + JUnit 5 で基本的なモック化とテストをするサンプルコード
https://qiita.com/niwasawa/items/f8798c981b4d08ecfa55

# 参照APIの構築
テスト用に参照用のAPIを構築する
参考 https://spring.pleiades.io/guides/gs/rest-service/

# 2つのクラスを作ります
実行するクラスとリクエストを送るクラスを作成する

**実行クラス**

“`Java:App.java
public class App {
public String send_request(int user_id) throws MalformedURLException, IOException {
return request.send(user_id);
}
}
“`

**リクエスト送付クラス

元記事を表示

SQLServerの2100個問題のひとつの解決策として、テーブル値パラメーターを利用する

useridを主キーとして、ユーザの情報を格納する、以下のようなテーブルがあるとします。

“`sql
CREATE TABLE users (
userid INT NOT NULL PRIMARY KEY,
username NVARCHAR(100) NOT NULL
);
“`

複数のuseridがあたえられて、その情報をusersテーブルから取得したいという場合、以下のようなクエリになると思います。

“`sql
SELECT *
FROM users
WHERE userid IN (?, ?, ? …)
“`

**問題は、SQLServerではこのプレイスホルダが2100個を超えるとエラーになることです。**たとえば、以下のようなコードで上記のようなクエリを動的に生成したとします。

“`java
int[] userids = …;

// SELECT * FROM users WHERE userid IN (?, ?, ?) のようなクエリを構築する。
String sql = “SELECT * FROM

元記事を表示

GeneratedValueについて

最近、Spring Boot × Dockerで開発をしています。

本日のお題はGeneratedValueです。

## GeneratedValueとは
プライマリキー値を生成する方法を指定する属性である。

GeneratedValueは4つの種類が存在する。
– AUTO : データベースごとに異なる方法を選択
– IDENTITY : テーブルのidentity列を利用
– SEQUENCE : シーケンスオブジェクトを使用
– TABLE : 主キー値を保持しておくためのテーブルを使用
である。

それぞれはDMBSによって動向が変わってくる。

### IDENTITY
PostgreSQL : SERIAL
MySQL : AUTO_INCREMENT
Oracle : サポートなし

### SEQUENCE

PostgreSQL : sequenceName
MySQL : サポートなし
Oracle : シーケンスオブジェクト

### TABLE
何れも対応している。

### AUTO
PostgreSQL : hibernate_sequence
MyS

元記事を表示

【メモ】Javaのメソッドを共通化

## 共通メソッド分割前

“`java
//
Map> contractCodeResultMap =
queryResults
.stream()
.collect(Colletors.groupingBy(ContractSearchQueryResult::getContractCode));

“`

## 共通メソッド分割後
“`java
// 契約書ごとにグループ化する処理を共通化したメソッドをprivateで定義
private Map> generateMapGroupedByContract(
List queryResults) {
return queryResults
.stream()
.collect(Collectors.groupingBy(ContractSearchQueryResult::getCont

元記事を表示

Reactorのdeferの使い方

[reactor-core](https://github.com/reactor/reactor-core)のMonoやFluxを使う上で、よくやってしまうリソース解放に関する誤りを、`Mono#defer`の使い方とともに説明します。
reactor-coreのその他の使い方については、[Reactor 3 Reference Guid](https://projectreactor.io/docs/core/release/reference/)を参考にして下さい。

## 前準備
[reactor-core](https://github.com/reactor/reactor-core)に従って、reactor-coreを使ったJavaプログラミングが出来る環境を準備します。

## 問題のあるコード
`Mono`や`Flux`の処理は、`subscribe`や`block`等の終端処理が呼ばれた際に実行されます。このため、終端処理が呼ばれるたびに、`doOnTerminate`等のハンドラーが実行されます。以下のように、`Mono`の外側で作成したリソースを`doOnTer

元記事を表示

デザインパターンを蒸し返して個人開発に生かす

#TL;DR
クラス型言語を使って自分で何か作る時、自分に言い聞かせる備忘録。
#GoFはいったん捨てろ
The Gang of Fourとかいう偉い4人組がデザインパターンの始祖を創造された。

– 特定のロジックの実装に名前をつけたのがアルゴリズム
– 特定のインスタンスの連携に名前をつけたのがデザインパターン

デザインパターンとはインスタンス間の連携の構造に名前をつけたものだ。
GoFの作ったデザインパターンは、思想の勉強としてはいい教材だがもう古い。
現代でも通用するものはあるが、不要なパターンのほうが多いと思う。
#具象と抽象を往復せよ
ある処理構造を設計する時に、最初のステップは具体的な事象のモデル化だ。
実現したい処理の構造を思い描いたら、そこから具体的な部分を削っていく。
抽象的な骨組みが残ったら、そこからまた具象部分を実装することを考える。
何度か具象と抽象を往復しているうちに、実装すべき内容が見えてくる。
#現代のパターンを使いまわす
典型的な要求とそれに適したパターンがあるのなら迷わずそれを使う。

– パブリッシャー・サブスクライバーパターン

マスターインス

元記事を表示

Spring Boot開発環境構築

##概要

先日Spring Bootを使ってWebサーバーを構境構築していたら、謎のエラーに苦しみ4時間程の時間を費やしてしまいました。(エラーの内容をメモし忘れるという致命的なミスをしてしまいました)

特にエラーなく環境を構築できたならいいのですが、僕と同じ謎のエラーに苦しんでいる人もいるかもしれないと思い、僕のやり方を書き残しておきます。
ちなみに未だに何が原因で何がエラーを解決したのかはよくわかっていません。

####参考

##環境

言語:Java 17
OS:Windows 10 x64
IDE:Intellij Community Edition 2021.3.2
フレームワーク:Spring Boot 2.6.3
プロジェクト管理ツール:Maven

##用語解説

**Spring Boot**:Java言語の環境下で使用することが出来るWebアプリケーションの開発をサポートするフレームワーク。

**Intellij**:Javaなど数多くのプログラミング言語に対応した統合開発環境(Wikipedia

元記事を表示

Couchbase Lite機能解説:Androidアプリ開発におけるライブクエリ利用

# はじめに

以前にこちらの記事で、ライブクエリ、つまりデータベースの変更を監視するクエリについて、概要を記しました。

https://qiita.com/yoshiyuki_kono/items/8da15296e9a979fbff3d

今回は、以下の公式チュートリアルの内容をベースに、Androidアプリ開発におけるライブクエリの利用について、具体的なコードを交えて解説します。

https://docs.couchbase.com/tutorials/university-lister/android.html

Couchbase Liteについては、[Couchbase Mobileアプリケーション開発へのロードマップ](https://qiita.com/yoshiyuki_kono/items/6a5bbad1b02196a25417)に記事をまとめている他、(これらの記事を元に構成した)以下の電子書籍を無償で頒布しています。

https://techbookfest.org/product/5074954942939136?productVariantID=50

元記事を表示

Mavenで依存関係含めたJarを作成する

# 概要
依存関係に設定しているJarファイルを含めてJarを作成する方法を記載
単純に作成すると、依存関係無いJarファイルが作成される

#実行方法

## 作成するPOMファイル(一部)
以下記載を``タグの配下に記載する
で作成する内容の詳細を記載する

“` xml
maven-assembly-plugin
2.2


make-assembly package

元記事を表示

米国上場企業の財務データを頑張って解析しようとした話 (XBRL)

# はじめに

自分は数年前から米国株式投資をしており投資対象を絞る際にyahoo financeで業績情報を見るのですが、何千企業とあるのでなかなか比較が大変です。

そこでこのプロセスを一部でもよいので自動化できないかと思い、そのために業績データ(売上・売上総利益・営業利益など)のデータベースを作りたいなと思いました。必要となる株価や業績のデータはお金さえ払えば色々なベンダーが色々な形式(API, CSVダウンロード…)で提供しています。しかし、もちろんお金がかからないに越したことはないので無償で使えるものが無いかを調べたところ、業績データに関してはSEC(日本で言う証券取引委員会のような機関)がXMLベースのXBRLという形式で無償で公開していました。

今回は公開されているXBRL財務データを解析し、Yahoo financeに載っているような財務データの粒度でデータベースが構築できることを目指して取り組んだ結果を共有します。

# 前提知識 – XBRLとは

XBRLとはeXtensible Business Reporting Languageの略語で、訳すと「事業に

元記事を表示

【 識別子(identifier)とそのルール 】

現在Javaを学習中なので、その備忘録としての投稿になります。

## 識別子とは
`変数名`、`関数名`、`プロパティ名`、`ファイル名`等を宣言・命名するときに使える、
`文字や数字の並び`のことです。
名前を何にするかは自由ですが、通常は、
`アルファベット`、`数字`、`アンダースコア(_)`、`ドルマーク($)`などを組み合わせて作ります。

## ルール
名前を何にするかは自由とは言え、`ルールや慣習`があり、それを守らなければなりません。
### ①予約語を使わない
予約語とは、すでに使われている、`「int」`、`「void」`、`「static」`のような単語のことです。
宣言・命名にはこれらを利用することはできません。

### ②既に使っている変数名の利用
例えば、既に変数nameを宣言しているのに、再び変数nameを宣言するようなことをしてはいけません。
同名の2つの変数の区別ができなくなるからです。

### ③文字の大小の違いは区別される
大文字/小文字、全角/半角は完全に区別されます。
例えば、変数nameと変数Nameは全くの別物になります。

###

元記事を表示

Java入門#1

#Java入門その1
今回はJavaとはどんな言語なのかと、簡単なプログラムを書いてい見ます。

##Javaとは
オブジェクト指向型のプログラミング言語です。
特に**業務用システムの構築**に適していると言われていて、世界で最も使われているプログラミング言語の一つです。

###特徴
・まず、どんなコンピュータ上でも動作します。
このことを**プラットフォーム非依存**と呼んだりします。JavaはJava仮想マシンという擬似的に作り出されたマシン上で動作します。

わかりづらいのでGoogle Chromeを考えて見てください。
Google Chromeも似ていて、仮想OS上で動作します。そのため、windowsでもMacでも使用することができます。

Javaも同じで、Java仮想マシン上で動作します。そのため、windowsでもMacでも使用することができます。

・オブジェクト指向型プログラミング
これはC#やPythonのような、 クラスを作っていくプログラミングということです。
有名なオブジェクト指向型プログラミングに、Java,C++,Python,JavaScri

元記事を表示

FirebaseとHerokuでエセAndroidフルスタック開発をした話

# まえがき

このたび、北海道札幌琴似工業高等学校 全日制 情報技術科を卒業することになりました。
今は学年末テストが終わって成績確定を待っている状況で、今後なにもなければ3/1日をもって卒業、進学することとなりました。

弊校では三年時にすべての生徒が「課題研究」という名で、なにかしらものを作ります。
私の所属する班はAndroidアプリを作ることになりました。

つまるところこの記事は、FirebaseとHerokuをバックエンドに持ったAndroidアプリを開発した話です。
主に成果物の概要と、振り返り、苦労をただただ書いていきます。技術的な内容は少ないかもしれませんが、Androidアプリ初学者の戯言と思っていただけると幸いです。

# Contents

以下にこの記事内の記述内容について簡単にまとめます。
目次はハイパーリンクになっています。スマートフォンでご覧のかたや、Webブラウザのウィンドウサイズ等で右の目次が表示されていない方はご利用ください。

– [作ったもの](#作ったもの)
– 実際の完成品について記述しています。
– [使った技術](#使った技術)

元記事を表示

Java SE8 Sliverの資格を取得して

#Java SE8 Sliverとは
私は先日「Java SE8 Sliver」というOracle社が提供する、Javaの開発者向けの資格を取得した。このJava Silverとは、プログラミング言語Javaの技術レベルをOracle社が認定する資格で、正式名称は「Oracle Certified Java Programmer, Silver SE 8」である(ちなみにこのSE8はJavaのバージョンを指し、現在はSE8とSE11がある)。このJava Silverは中級者を対象としたものであるが、それ以外にも初級者向けのBronze、上級者向けのGoldなどがある。

 この「Oracle Certified Java Programmer」はJavaアプリケーション開発のためのプログラミング知識や、さまざまな状況への対応能力を有していることを客観的に証明できるものとなっている。つまり、このJava Silverと言う資格の取得にはプログラミングにおける「最低限動作可能な」コードだけでなく、「拡張性、可読性がともに高い」コーディング能力が求められるのである。

#取得までにかかっ

元記事を表示

SpringのDIとLombokってとても相性良くないですか・・・?

SpringのDIとLombokって相性がいいよな、って今更になって思いました!

SpringのDIだけでなくて、探せば他にもLombokと相性が良い機能がありそうだなぁ・・・
どなたかご存知なら教えてください!

# この記事はこちらに移管しましたmm

【Java】SpringのDIとLombokはとても相性が良いと思った話

元記事を表示

【Java】なんとなくわかった気になれるラムダ式の解説

## はじめに
よくわからず使っていたラムダ式ですが、JavaSilver取得を機に自分なりにまとめてみました!

## そもそもラムダ式とは?

今まで**匿名クラス**でできた処理をより簡潔に記述できるようにしたもの(要は書き方のこと!)

## で、匿名クラスって何?

匿名クラスとはインタフェース実行のステップを簡潔にしたもの。

従来、インタフェースの実行は**①インタフェースの作成→②インタフェースの実装用のクラスを作成→③インタフェースの実行用クラスの作成**の3ステップを踏む必要があった。

“`java
// 1.インタフェースの作成
interface Car {
String carType(String typeName); // 車の種類(抽象メソッド)
}

// 2.インタフェースの実装
public class CarImple implements Car {
@Override
public String carType(String typeName) { // 抽象メソッドのオーバーライド
return “carType:” + ty

元記事を表示

Java,Kotlin上からJDBCでSQLite接続しているときに、IDEA上でUnable to resolve tableと表示されてしまう時の対処法

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/362835/09e8379b-c957-3cc2-bebb-8fe026409b46.png)
これをなおしたい。5分くらいハマったのでメモ。

# 解決方法
File > Settings > Languages & Frameworks > SQL Dialects
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/362835/71bb2aa0-5d1c-ef72-c7ab-e8b9b5c3f3a0.png)
ここを両方SQLiteにする

元記事を表示

OTHERカテゴリの最新記事