- 1. GraphQL + Javaでアップロードされたファイルを処理する
- 2. Javaで何か作ってみる(2022/10/25 Day5)
- 3. Javaで何か作ってみる(2022/10/24 Day4)
- 4. 繰り返し処理、「continue」と「break」
- 5. Javaのswitch文について
- 6. Python,Ruby,PHP,Java,JavaScript,Perlの論理演算子の比較
- 7. JSPとServletでファイルアップロード
- 8. SpringとMySQLの接続設定・簡単プログラミング実装
- 9. JavaでExcelをWordに変換する方法
- 10. 【v45】マージツールを先頭カラムのタイムスタンプに対応する
- 11. Java 引数設定方法
- 12. Python,Ruby,PHP,Java,JavaScript,Perlの算術演算子の比較
- 13. 【android】各パッケージについて
- 14. E2EテストのテストをExcelでケース書いたら(ほぼ)テストコードを書かなくてもテストを自動でやってくれるツールを作ってます
- 15. Javaで何か作ってみる(2022/10/23 Day3)
- 16. 【Java】実は難しいIntegerの配列(1~Nまでの初期化)
- 17. Lucene で simpleTextCodec がどう生成されるか見てみる。
- 18. ABC274A~Eの解答[Java]
- 19. Springの @Scheduled について
- 20. Javaインストールから実行まで【超初心者向け】
GraphQL + Javaでアップロードされたファイルを処理する
# 概要
– JavaでGraphQLサーバーを構築した際のファイルアップロード処理の実装例
– GraphQLクライアント側の説明は割愛# 構成
– Java 11
– SpringBoot 2.3.4
– gradle 7.4.1
– GraphQL For Java
– graphql-spring-boot-starter 7.1.0 [ref. 1]
– io.github.kobylynskyi.graphql.codegen 5.5.0※. 最新のSpringBootの構成ではないため注意!
# 実装方法
## ポイント
– schema定義について
– GraphQLのschema定義ではアップロードするファイルをUploadで定義する
– Uploadは、Java側で任意のクラスにマッピングするため、scalarに記載する
– Java側について
– schema定義のUploadをjavax.servlet.http.Partで受け取る## 詳細
– 全ソースは[ここから](https://github
Javaで何か作ってみる(2022/10/25 Day5)
## 今日やった事
– Udemyの動画教材を少し見た。(**J1-04_ソースコードの基本ルール** まで見た。)
## 参考にしたもの
– [【超絶丁寧解説】Javaプログラミングをゼロから学ぶ!絶対挫折させない「基礎入門」講座【講師評価4.3】](https://www.udemy.com/course/uz-java-kiso/)
→ Javaの勉強に使用しているUdemyの動画教材。
## 所感
– 例のお注射の副反応が昨日より酷く、勉強どころではなかった。
## 明日の予定
– 明日には副反応が落ち着いていると願うばかり。
– 引き続き、動画教材を進めていく。
Javaで何か作ってみる(2022/10/24 Day4)
## 今日やった事
– Udemyの動画教材を少し見た。(**J1-03_Javaプログラミングの手順**まで見た。)
## 参考にしたもの
– [【超絶丁寧解説】Javaプログラミングをゼロから学ぶ!絶対挫折させない「基礎入門」講座【講師評価4.3】](https://www.udemy.com/course/uz-java-kiso/)
→ Javaの勉強に使用しているUdemyの動画教材。
## 所感
– 動画を視聴するのみで、コーディングは全く出来なかった。
– 動画の内容が、基礎の基礎という感じで、自分のレベルと合っていない感じがして、
物足りなさを感じた。
– 例のお注射の副反応で、頭痛、倦怠感が酷く、あまりやる気が起きなかった。
## 明日の予定
– 副反応がひどいと思うので、最悪何もできなくても良い。
– 引き続き、動画教材を進めていく。
繰り返し処理、「continue」と「break」
## for分
決まった回数だけ処理を繰り返し実行したいときに使用する。
“`:構文
for (最初の処理; 条件式; 命令文の実行後に行う処理) {
// 条件式がtrueのときに繰り返す命令文
}
“`
“`:例文
for(int i = O; i < 5; i++) { System.out.println("こんにちは"); } ``` まず「最初の処理」が実行される。(最初の処理は文字通り最初の一回しか処理されない) 次に「条件式」が評価される。条件式の値がtrue である限り、ブロック内の命令文は繰り返し実行される。 ブロック内の命令文が実行されると、今度は「命令文の実行後に行う処理」が実行される。 そして、再度「条件式」が評価される(「最初の処理」はもう実行されない)。 もし「条件式」がfalse になったら、この時点でfor 文の実行は終了。 true のままであれば、for 文の実行は続く。 例文だと変数iが5 になるまで"こんにちは"が出力され続ける。 ## while分 while文は、与えられた条件を満たしている場合に処理を繰り返す。
Javaのswitch文について
今日も学んだ事を忘れない為にメモします
## switch文とは
if分と同じように条件分岐の際に用いる。
if文は分岐が何パターンもあるとき、ソースが読みにくくなってしまうというデメリットがあるがswitch文は複数の分岐パターンがあってもわかりやすく書くことができる。分岐が少ない場合ならif文を使い、分岐が多い場合ならswitch文を使うようにした方が可読性が上がる。
## 基本構文
“`:構文1
switch(式){
case 値1:
処理1
break;
case 値2:
処理2
break;
case 値3:
処理3
break;
default:
処理4
break;
}
“`
“`:構文2
switch ( 式 ) {
case 値1:
case 値2:
処理1;
break;
case 値3:
case 値4:
処理2
break;
default:
処理3
break;
}
“`switchのカッコ内に式を書く。そし
Python,Ruby,PHP,Java,JavaScript,Perlの論理演算子の比較
Python,Ruby,PHP,Java,JavaScript,Perlの論理演算子の比較
# Python
https://qiita.com/dondondon/items/0b7de45078bee0ba2b13
# Ruby
https://qiita.com/yusuke_blog1026/items/ab33bdfa495597d04f0b
# PHP
https://qiita.com/tsukishimaao/items/b4a2f30c89ea16ef6eb1
# Java
https://qiita.com/takahirocook/items/748990882f2de7a630a1
# JavaScript
https://qiita.com/TakeshiNickOsanai/items/e180777619f1a49f30e5
# Perl
https
JSPとServletでファイルアップロード
JSP と Servlet 使ってファイルアップロードをやってみる
# アップロードでやるざっくり内容
– フォルダ
– アップロード用のフォルダ作成 `/java-webapp-clump/src/main/webapp/upload`
– tomcat で読み込まれるように blankファイルを配置
– JSP
– 入力送信用のformタグに `enctype=”multipart/form-data”` を追加
– 入力送信用のformタグの中にある input タグに `type=”file”` を追加
– アップロード表示用のタグを配置 (ここでは 画像 img, 動画(・音声) video のサンプルでやってみます )
– Servlet
– クラスのアノテーションに `@MultipartConfig` を追加
– `request.getPart(“JSPで設定したname”)` で入力したファイルを取得
– `getServletContext()` でサーバに展開してるフォルダパスを取得し `/up
SpringとMySQLの接続設定・簡単プログラミング実装
# この記事の目的
まず大前提にこの記事を書いた理由として**自分自身の学習のOUTPUT**です。
そもそも自分自身Springを勉強し始めて約1ヶ月程度で有り、そこまで詳しくありません。
そのためSpring初学者が見て勉強するための記事ではあまり無いかも知れないです。
なるべく自分がやったことをわかりやすく書いたつもりですが、ある程度Springの知識が無いと読みづらい記事になっています。# 成果物
今回最終的に作成した成果物は以下になります。
今後、この成果物にさらなる機能を実装した記事を投稿する予定です。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/229b02d9-e090-dc0a-f714-5892bc2469d3.png)
1. 新しいデータを登録する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2884987/c5e91e46-8e32-4c0
JavaでExcelをWordに変換する方法
Microsoft Excelは大量のデータを保存するために、Microsoft Wordはドキュメントを作成するために広く使用されています。あなたは、書式付きテキスト、画像、およびWordドキュメントの他の要素を挿入するために、WordドキュメントにExcelのワークブックの情報を追加する必要があるかもしれません。この記事では、[Free Spire.Office for Java](https://jp.e-iceblue.com/introduce/free-spire-office-for-java.html)を使用して、Javaアプリケーションで**ExcelファイルをWord形式に変換する方法**について説明します。
– **[ExcelをPDFに変換し、PDFをWordに変換する](#excelをpdfに変換しpdfをwordに変換する)**
– **[ExcelをHTMLに変換し、HTMLをWordに変換する](#excelをhtmlに変換しhtmlをwordに変換する)**## 【依存関係の追加】
> **この方法は、無料のFree Spire.Office
【v45】マージツールを先頭カラムのタイムスタンプに対応する
# はじめに
過去記事は「[auカブコム証券のkabuステーションREST APIに関する記事一覧](https://qiita.com/hiuchida/items/611ba237dc1d1f6e3dca)」。
54番目の記事で、先頭カラムにクライアントのタイムスタンプを追加したので、このファイルにマージツールを対応する。
# 方針
本来ならば、ChartData.csvの形式が変わるごとに、ChartData_r17.csvのように変えていけばよかったが、過去でも売買高を追加したときにファイル名を変えなかったのは、(おそらく)読み込む方が複数のファイル名に対応する必要があったためと思われる。
売買高を追加した際に、指数には売買高は存在しないため、レコードのカラム数がまちまち(さらにOPはGreeksを追加)のため、判定していた。
“`java
int volume = 0;
if (cols.length > 2) { // 指数には売買高は存在しない
volume = (int) StringUtil.parseDouble(cols[2]);
Java 引数設定方法
■単一の場合
例:
AAA■複数引数の場合、space で記載
例:
AAA BBB
Python,Ruby,PHP,Java,JavaScript,Perlの算術演算子の比較
Python,Ruby,PHP,Java,JavaScript,Perlの算術演算子の比較
# Python
https://qiita.com/G-Rape/items/cd3f2f284ba990164564
# Ruby
https://qiita.com/SUZUKI_Masaya/items/eeea6cd36cc265d2dbf0
# PHP
https://qiita.com/mzmz__02/items/8bfbcf2cd48d9e9f2806
# Java
https://qiita.com/morioheisei/items/63088c61e8234dc1f7f5
# JavaScript
https://qiita.com/uhyo/items/cc92a553059274d85403
# Perl
https://perlzemi.com/blog/2
【android】各パッケージについて
## パッケージについて
androidstudioをインストールして、プロジェクトを作成してみました。
メモ程度に何のファイルがあるのか書いてみました。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2689436/cd29a3d4-616d-8e08-bb15-f2c3db23378b.png)
### java
“`java:MainActivity.java
package com.example.helloworld;import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
E2EテストのテストをExcelでケース書いたら(ほぼ)テストコードを書かなくてもテストを自動でやってくれるツールを作ってます
# このドキュメントは?
テストの自動化のハードルが高い方々に向けて、まず最初の一歩を踏み出しやすくするためのツールを作ろうと日々少しずつ作っていて、最低限の機能は出来たと思うので晒してしまう記事です。
ツールそのものはまだまだ追加したい機能もあるし、リファクタリング全然できてないし、テストコードも書ききれてないし、ツールの説明も足りない状態なのですが*Done is better than perfect.*
と、マークザッカーバーグ氏もおっしゃっているので、途中でも公開してしまって進めていこうかな。というテストツールの第一歩の紹介記事です。
ツール自体はGithubで公開していて、使い方などはWikiの方で載せていく予定ですが、「Githubは見れないけどQiitaなら見れる」というような謎環境の方もいるかもしれないので、ある程度はこちらでも記載していこうと考えています。
# ツールの紹介
## Kubera(仮名) とは
「クベーラ」と読みます。E2Eテストの自動化を簡単に作成、実施できるようにするための自動化サポートツールです。
決められたルールに従って作成された
Javaで何か作ってみる(2022/10/23 Day3)
## 今日やった事
– VSCodeでJavaプログラムが実行出来るように開発環境を構築した。
– VSCode上で、**Hello Java!** を実行出来た。
## 参考にしたもの
– [Visual Studio CodeでJavaプログラム開発環境構築](https://qiita.com/jsj05543/items/da54e5db258bc9d2538a)
→ ググった時に出てきたQiitaの投稿。シンプルでわかりやすく、非常に助かった。
## 所感
– 今日も朝からバタバタしており、日中の勉強時間の確保が出来なかった。
→ もう一層の事、「寝る前にやる」って決めてしまってもいいかもしれない。。。
– 以前参加していた勉強会の時に使っていた、SVNのプロジェクトが残っていて、それを削除するのに時間かかった。
→ 最近は、gitばかりで、svnのやり方を忘れてた。ただ、ルートの.svnを削除するだけで良かった。。。
## 明日の予定
– 明日は、午後に、例のお注射で、ぐったりするかと思うので、ぼちぼちやろうと思う。
–
【Java】実は難しいIntegerの配列(1~Nまでの初期化)
# はじめに
そもそもJavaで`Integer`の配列を扱うことは少ないと思います。
`java.util.List`を使うほうが一般的です。これは`Integer`の配列をどうしても生成したかったため、筆者が試した記録です。# 基本的な定義方法
要素数3の`Integer`配列の定義は以下のようになります。
“`java:要素数3のInteger配列の定義
Integer[] numbers = new Integer[3];
“`
このときの配列の中身は`null`が並びます。
“`java:出力
Integer[] numbers = new Integer[3];
Arrays.stream(numbers).forEach(System.out::println);
“`
“`:出力結果
null
null
null
“`
# 1~NまでのInteger配列を作る
単純にやるのであれば以下の方法でいけます。
“`java:1~Nまでの配列を作るメソッド
private Integer[] createNumbers(int n){
Integer[]
Lucene で simpleTextCodec がどう生成されるか見てみる。
Lucene の IndexWriter を最初に調べていた時、codec とか意味不明な言葉が多すぎたので、まとめました。
## Lucene の simpleTextCodec とは?
lucene の Codec とは、インデックスファイルの読み書きをする機能ですが、その中でも一番内容が分かりやすいものになっているのが、simpleTextCodec です。
lucene では addDocument をする度に、インデックスファイルの内容を初期化かするかファイルの内容を追加します。
simpleTextCodec は例えば下のようなコードをすると、`lucene-plaintext` のフォルダの直下にインデックスファイルが生成されます。これを行っているのが、simpleTextCodec です。
※ ちなみに、デフォルトの codec である lucene94 (2022/10/23現在)ではインデックスファイルはバイナリファイルになります。“`diff_java
import java.util.ArrayList;
import java.util.Arrays;
ABC274A~Eの解答[Java]
## はじめに
今回はA~Dがコンテスト中のもの、Eは公式解説を見ながら実装したものです。では、見ていきましょう。
## A – Batting Average
問題文は[こちら](https://atcoder.jp/contests/abc274/tasks/abc274_a)printfを使えば良さそうですね。
“`A.java
class Main{static Library System = new Library(java.lang.System.in,java.lang.System.out);
public static void main(String[] args){
//A、Bの受け取り
int A = System.in.nextInt();
int B = System.in.nextInt();//小数点第3位まで表示
System.out.printf(“%.3f”,(double)B/A);System.out.close();
}
}
“`
四捨五入されるの今回初めて知りました。便利
Springの @Scheduled について
# 概要
Springが提供している [@Scheduled](https://spring.pleiades.io/spring-framework/docs/current/javadoc-api/org/springframework/scheduling/annotation/Scheduled.html)について調べたので、そのメモを残す。
下記のversionで検証を行った。
– Java17(Corretto 17.0.5)
– SpringBoot2.7.5検証コードは下記に格納している。
https://github.com/nannany/spring-scheduled# `@Scheduled`とは?
`@Scheduled`アノテーションをメソッドに付与することで、メソッドの定期的な実行を行うことができる。
例えば、下記のようなメソッドは`fixedRate_withTimeUnit`という文言を1分ごとに標準出力する。
“`java
@Scheduled(fixedRate = 1, timeUnit = TimeUnit.MINUT
Javaインストールから実行まで【超初心者向け】
## javaのインストールから実行までを簡単なコードを作成して試した際のメモ
## 環境
– Windows10
– Java 19.0.1## 流れ
– Javaのインストール
– 環境変数の設定
– プログラム作成
– プログラム実行### Javaのインストール
まずはJavaの「Java JDK」をダウンロードします。
#### 補足
– Java JDK(Java JREが含まれている)
プログラミング・開発に必要なもの
– Java JRE
Javaを実行時にひつようなもの下記のダウンロードページにて、「x64 Installer」をインストールします。
ダウンロードページ
https://www.oracle.com/jp/java/technologies/downloads/#jdk19-windows![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1193125/1aa23861-2b36-10f0-e946-fde88f9fb9cf.png