- 1. paizaラーニング データセット選択メニュー 文字列の配列 Java 解答
- 2. App Service における Tomcat アプリケーションへの war ファイルのデプロイについて
- 3. SQL文を自動生成するプログラムをつくる③
- 4. OpenJ9系VMのダンプファイルからヒープダンプを取り出すメモ
- 5. SpringとMySQLでデータ削除、メッセージ、バリデーション機能の実装
- 6. 【個人的メモ】重複確認編 〜 リストとマップの重複確認 〜
- 7. 【個人的メモ】リスト編② 〜 入れ子のリスト・リストの要素除外 〜
- 8. SQL文を自動生成するプログラムをつくる②
- 9. Spring Boot + MyBatisで自作TypeHandlerを使う
- 10. JavaでデータベースからExcelにデータを書き出す方法
- 11. 【v45】イベントトリガーの結果を統合してソートして保存する
- 12. SQL文を自動生成するプログラムをつくる①
- 13. [Spring Boot] SQLの実行時間をアノテーションをつけるだけで計測できるようにする
- 14. JavaのComparatorのreversedメソッドについて誤解していた
- 15. paizaラーニング データセット選択メニュー 動的配列 Java 解答
- 16. Scalaで当月の日をすべて表示する
- 17. Javaで何か作ってみる(2022/10/27 Day7)
- 18. Lucene の QueryParser を読んでみる
- 19. プログラミング学習参考サイト
- 20. Think Java 12以降
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[]) {
// 果物リスト
ListfruitList = new ArrayList ();
fruitList.add(“りんご”);
fruitList.add(“ぶどう”);
fruitList.add(“なし”);// 確認用果物リスト
ListconfirmFruitList
【個人的メモ】リスト編② 〜 入れ子のリスト・リストの要素除外 〜
# 目次
[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
>();
// 魚リスト
ListfishList = new ArrayList ();
fishList.add(“あじ”);
whateverList.add(fishList);// 鳥リスト
ListbirdList = 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
JavaのComparatorのreversedメソッドについて誤解していた
### × reversed() を付けた comparing() だけ逆順になる
“`Java
list.stream()
.sorted(Comparator.comparing(Element::key1)
.thenComparing(Element::key2).reversed()
.thenComparing(Element::key3));
“`この場合、ソートとしては以下の形になると思っていた。
1. key1 の **昇順**
1. key1 が同じ場合は key2 の 降順
1. key2 も同じ場合は key3 の 昇順実際は reversed() を付けた対象以前のものが逆順になるため
1. key1 の **降順**
1. key1 が同じ場合は key2 の 降順
1. key2 も同じ場合は key3 の 昇順となる。
key1 の昇順 > key2 の降順 というソートをしたい場合は下記のようになる。“`Java
list.stream()
.sorted(Comparator
paizaラーニング データセット選択メニュー 動的配列 Java 解答
# STEP: 1 ランダムアクセス
# 問題
https://paiza.jp/works/mondai/data_structure/data_structure__array_step1# 解答
“`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();
int m = sc.nextInt();
sc.nextLine();
for(int i = 1; i <= m; i++){ if(i == m){ System.out.println(sc.nextInt()); } else { sc.nextInt();
Scalaで当月の日をすべて表示する
# はじめに
Scala でカレンダーを実装したいと思って調べていたところ、JAVAでカレンダーのClassがあるようなので、こちらで値が取得できるか試してみます。
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Calendar.html
# 実装
## 現在の年を表示する
まずは、最小構成のコードで、現在のカレンダーの年を表示させる。
“`scala
package mvc.utilimport java.util.Calendar
/**
* Calendar
*/
object GetCalendar {
/**
* Execute process
*/
def main(args: Array[String]): Unit = {
val cl = Calendar.getInstance();
println(“————- 年を表示 ————-“)
println(“年:” + cl.get(Calendar.YE
Javaで何か作ってみる(2022/10/27 Day7)
## 今日やった事
– Udemyの動画教材を少し見た。(**J1-10_繰り返し~for~** まで見た。)
## 参考にしたもの
– [【超絶丁寧解説】Javaプログラミングをゼロから学ぶ!絶対挫折させない「基礎入門」講座【講師評価4.3】](https://www.udemy.com/course/uz-java-kiso/)
→ Javaの勉強に使用しているUdemyの動画教材。
## 所感
– 今日は日中に勉強する事が出来た。
– JavaにおけるString型は、参照型であり、本来なら、
“`
String moji = new String(“hoge”);
“`
とやらなきゃいけないところを、Javaの開発者によって特別なプログラムが組まれている為、
“`
String moji = “hoge”;
“`
といった具合で、プリミティブっぽく(これを疑似プリミティブ型と呼ぶらしい)使う事が出来ると理解した。
– 直近はPHPやJavaScriptをやっていて、メモリの
Lucene の QueryParser を読んでみる
## Lucene の QueryParser とは?
Lucene で検索をする時にクエリを入力する必要があるのですが、そのクエリにはたくさんの機能があります。
それが [公式ドキュメント](https://lucene.apache.org/core/2_9_4/queryparsersyntax.html)を見れば分かりますが、ワイルドカード・ブーストやAND, OR検索などの機能になります。
ここでは、その QueryParser のソースコードを読んで、内容を理解したいと思います。## QueryParser のソースコードの場所
QueryParser は、queryparserフォルダの下の classic の配下の [QueryParser.jj](https://github.com/apache/lucene/blob/44b4602776a63d93896d887e5000c9e3ca7c3119/lucene/queryparser/src/java/org/apache/lucene/queryparser/classic/QueryParser.jj)
プログラミング学習参考サイト
https://qiita.com/hatai/items/34c91d4ee0b54bd7cb8b
https://zenn.dev/nameless_sn/articles/awesome_python_github_repo
https://zenn.dev/nameless_sn/articles/important_10_github_repositories
https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-ja.md#java
Think Java 12以降
# 背景・理由
立派なプログラマーになるためにThink Javaを学びます。
chap12以降はゲーム作成なので別立てにします。
#リソース
Think Java: How to Think Like a Computer Scientist
Allen B. Downey https://www.amazon.co.jp/dp/1492072508/ref=cm_sw_r_tw_dp_THGFFJFBXVVCYQ54R9ES
但し書き エクササイズ主にThink Javaの前のバージョンを使います。
https://books.trinket.io/thinkjava/# chap 12
## 語彙
encode
class variable
sequential search
binary search# ex12_1
public Card[] makeDeck(){
Card[] cards = new Card[52];
int index = 0;
for (int suit = 0; suit <=