- 1. 戸建て住宅マーケティングAI 開発
- 2. 年/月/日 の一部が省略された日付をパースして LocalDateTime を取得する方法
- 3. Struts2 Validation
- 4. #2 変数
- 5. OUTPUT句の結果をJavaアプリケーション上で受け取りたい
- 6. #1 文字の出力、for文、if文
- 7. Constructor
- 8. TXTファイルをWord、PDF、画像(JPG、PNG、BMP、TIFF)に変換する (Java)
- 9. ABC260A~Dの解答[Java]
- 10. 自分の解説記事内で使用するテンプレートの紹介[ABC258~]
- 11. Mockito使い方メモ
- 12. 【JSP/Servlet】簡単なチャット機能の作り方
- 13. Javaに触れてみました!
- 14. JavaSilver_SE11(黒本の改造問題)
- 15. ライブラリ開発者より指定されたバージョンを利用してアプリケーションを作る
- 16. Jar を作り、Azure Artifacts を利用して成果物を配布する
- 17. Java(Spring)のテストを早くするために頑張ったこと
- 18. Gradleテスト時にテスト用の環境変数をセットする方法
- 19. Visual Studio CodeのJava環境でエラー出たとき
- 20. 配列の要素m個からn個取る組み合わせ(配列)を列挙する
戸建て住宅マーケティングAI 開発
これから、積もってきた python vue.js java 等の kipple を使って
戸建て住宅を題材に、マーケティングシステム(AI ?) の開発してみます。以下のurlは、とりあえず立ち上げたもので、
今後、必要な機能を継ぎ足していきます。[![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2639/a87baac6-01c0-ce21-ce73-bd1c1dada726.png)](https://15db.end0tknr.jp/)
年/月/日 の一部が省略された日付をパースして LocalDateTime を取得する方法
(この記事は [地平線に行く](https://yujisoftware.hatenablog.com/entry/2022/07/18/233301) とのマルチポストです)
# 年が省略されている日付(`月/日`)の場合
まずは、[DateTimeFormatter](https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/time/format/DateTimeFormatter.html) を用意します。
“`java
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(“MM/dd”);
“`次に、日付を [**MonthDay クラス**](https://docs.oracle.com/javase/jp/17/docs/api/java.base/java/time/MonthDay.html)でパースします。
“`java
MonthDay monthDay = MonthDay.parse(“07/18”, formatte
Struts2 Validation
# 概要
Struts2のValidationフレームワークについて
調査対象:struts-6.0.0-SNAPSHOT# 組み込みのValidator
| クラス| タイプ| 機能 |対象|
|:–|:–|:–|:–|
|[RequiredFieldValidator](#requiredfieldvalidator)|required|指定したフィールドがnot nullであることを検証する。|フィールド|
|[RequiredStringValidator](#requiredstringvalidator)|requiredstring|指定したフィールドがnot nullかつ長さが0より大きいことを検証する。|フィールド|
|[IntRangeFieldValidator](#intrangefieldvalidator)|int|int型数値が指定した値の範囲内であること|フィールド|
|[LongRangeFieldValidator](#longrangefieldvalidator)|long|long型数値が指定した値の範囲内であること|フィールド|
#2 変数
参考 -> https://www.youtube.com/watch?v=ukNoszW09BI&list=PLru8-xuz0YvyZhvDRZvakIFW6-MHky-lD&index=3
# 学習内容
変数について。
“`java
public class Hensuu{
public static void main(String[] args) {
boolean bln = true;
char ch = ‘a’; //シングルクォーテーションを忘れない
byte by = 3;
long lo = 96l; //末尾に”l”(L)を忘れない
float fl = -35.2f; //末尾に”f”(F)を忘れないSystem.out.println(bln);
System.out.println(ch);
System.out.println(by);
System.out.println(lo);
System.out.printl
OUTPUT句の結果をJavaアプリケーション上で受け取りたい
SQLServerには削除したり更新したりしたデータを返す[OUTPUT句](https://docs.microsoft.com/ja-jp/sql/t-sql/queries/output-clause-transact-sql?view=sql-server-ver16)というものがあります。OUTPUT句の結果をJavaアプリケーション上で受け取りたい場合は`PreparedStatement::executeQuery`を利用して、SQLを発行すれば良いです。OUTPUT句はDELETE文やUPDATE文で利用しますが、通常DELETE文やUPDATE文の発行に利用する`PreparedStatement::executeUpdate`ではOUTPUT句の結果を受け取れないことに注意する必要があります。
未検証ですが、データベース接続に何らかのライブラリを使う場合は、通常SELECT文を発行するためのAPIを用いて、OUTPUT句を含むDELETE文なりUPDATE文なりを発行すればよいかと思われます。
以下は従業員の情報を格納する`employees`テーブルからidが
#1 文字の出力、for文、if文
# 学習内容
今回は、”Hello World” ~ “if文(条件分岐)” までやった。“`java
class Hello{ // Helloクラス
public static void main(String[] args) { //mainメソッド
for(int i=1; i<5; i++){ // iが5未満の場合、処理をする if(i < 3){ // iが3未満ならば、挨拶する System.out.println("Hello World!"); }else{ // iが3以上ならば数字を出力する System.out.println(i); } } } } ``` 参考 -> http://blueplace.sakura.ne.jp/basic/JavaBasicSample.html#src205## class
プログラムを実行するための処理をひとまとまりにしたもの。
この中で、メソッドやフィールドなどを
Constructor
# Constructor
classは基本生成者を持っているが接近指定者が*privateなのでseに目立たない
* 基本生成者
(1) seが生成者を定義しないと、基本生成者を自動的に生成する
(2) 媒介変数と何のコマンドも含まない
(3)seが生成者を作ったら基本生成はない* private : classの中だけオブジェクト化
* オブジェクト化(instance)
(1)オブジェクト化とはクラス(設計図)を参照してオブジェクト(商品)を作ることを意味する。
一つの設計図を利用して様々な商品を作ることができる。
* Constructorは Overloadingができる
—
# Constructor使い方
class 中で生成者を呼び出すためにはオブジェクト化をした後に呼び出すことができる。
“`
className ObjectName = new className();
“`
* new : メモリの空間を確保し、その空間のアドレスをオブジェクトに渡す役割をする
* クラスは参照型データで、オブジェクトのアドレスを保存する
“
TXTファイルをWord、PDF、画像(JPG、PNG、BMP、TIFF)に変換する (Java)
TXTファイルは、任意のテキストエディタで開いて処理することができるプレーンテキストファイルです。TXTは一般的なファイル形式ですが、いくつかの欠点があります。例えば、TXTファイルは、画像、書式、フォントをサポートしていません。これらの理由から、TXTファイルをWord、PDF、画像など、他のファイル形式に変換する必要がある場合があります。この記事では、Spirを使ってTXTファイルをWord、PDF、画像に変換する方法について説明します。
次のようなテーマを取り上げる予定です。
– Javaを使用してTXTファイルをWordやPDFに変換する
– Javaを使用してTXTファイルをJPG、PNG、またはBMP画像に変換する
– Javaを使用してTXTファイルをTIFF画像に変換する
## 【依存関係の追加】
この方法は、無償のFree Spire.Doc for Javaが必要ですので、先にjarファイルをインポートしてください。
### 1. Maven
Maven を使用している場合、プロジェクトの pom.xml ファイルに以下のコードを追加することで、簡単にアプリケーショ
ABC260A~Dの解答[Java]
## はじめに
A~Cはコンテスト中に、Dはコンテスト後に解けたので今回もA~Dを解説していきます。では、見ていきましょう。
## A – A Unique Letter
問題文は[こちら](https://atcoder.jp/contests/abc260/tasks/abc260_a)普通に互いに異なるかどうか調べれば良いです。
今回はchar[]として受け取り、if~else文で分岐させてみました。
※やっていることは[physics0523さんの解説](https://atcoder.jp/contests/abc260/editorial/4443)の最初の実装例と同じです。
“`A.java
class Main{static Library Sys = new Library();
static SimpleScanner ss = new SimpleScanner();public static void main(String[] args)throws IOException{
//Sをchar[]として受け取る
char[]
自分の解説記事内で使用するテンプレートの紹介[ABC258~]
## はじめに
これまでと違って別クラスにまとめるようにしました。また、入力を受け取るクラスができたので新しく記事に書いた方が良いかなぁと思って書きました。コード自体に何のメソッドか書く形にしているので、見にくい等ありましたらコメントください。別に見出しを作って解説を書きます。
## 自作ライブラリ(Library)
SimpleScannerをまだ信頼していないのでBufferedReaderは残してあります。
“`Library.java
class Library{//入出力用
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
PrintWriter out=new PrintWriter(System.out);//N!とN!^-1を記録する用(コンストラクタに渡せば記録できる)
private long[] Factorials,InFactorials;//mod系の計算に使うやつ(これだけ変えたい時用にpublicにしてる)(setter作っても良
Mockito使い方メモ
# Mockito とは
– Java のテストでモックを簡単に扱えるようにするためのフレームワーク
– 指定されたクラスのモックを作成し、任意のメソッドをスタブ化して指定した値を返すようにしたり、モックのメソッドが期待した通りに呼び出されたかどうかを検証したりできる
– `static` や `final` なメソッドのモック化もできたりする(昔はできなかったはずだけど、いつの頃からかできるようになってた)
– モックの振る舞いの定義を型安全に定義できるのが大きな特徴(だと思う)
– 読み方は「もきーと」# 環境
“`text
> gradle –version————————————————————
Gradle 7.4.2
————————————————————Build time: 2022-03-31 15:25:29 UTC
Revision: 540473b8118064efcc26
【JSP/Servlet】簡単なチャット機能の作り方
## はじめに
初学者向けのJavaサーブレットを用いた、もっとも原始的なチャット機能の実装方法です。
個人での開発やスクールでの課題作成時に参考にしてください。## 開発環境
| カテゴリー | ソフトウェア名 | バージョン |
|:-:|:-:|:-:|
| OS | Windows10 | 21H2 |
| エディタ | Eclipse 2018 | 4.8.0 |
| データベース | MySQL | 5.5.39 |## 設計
**ER図**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1270216/f4306667-3509-22e6-0f4c-c3fb6a043865.png)**DB設計書**
* ユーザ管理テーブル
* メッセージ管理テーブル
* チャットルーム管理テーブルデータベースは、以上の3つに分かれています。
① ユーザ管理テーブル
![image.png](https://qiita-image-store.s3.ap
Javaに触れてみました!
こんにちは、プログラミング初学者”fujitacoma”です!
今回は、Javaの基礎プログラムを学ぶ機会がありましたので、
備忘録として残しておきたいと思います!ちなみに今回、Javaの基礎はTeratailにて学習致しました。
https://prog-8.comそれでは早速参りましょう!
#
#### 以下を満たすプログラムコードを作成し、プログラムを実行してください。・文字列と数値を格納する配列を作成してください。
・1つ目の配列には、「banana,orange,strawberry」を代入してください。
・2つ目の配列には、数値「300, 500, 100」を代入してください。
・1つ目の配列に対して、for 文を使い繰り返し処理を行ってください。
配列の中身が「banana」の時は2つ目の配列の最初の要素をコンソールに出力してください。
配列の中身が「orange」の時は2つ目の配列の3個目の要素をコンソールに出力してください。
配列の中身が「strawberry」の時は2つ目の配列の2個目の要素をコンソールに出力してください。
#### ①パッケ
JavaSilver_SE11(黒本の改造問題)
[黒本](https://www.amazon.co.jp/%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5Java-SE-11-Silver%E5%95%8F%E9%A1%8C%E9%9B%86-1Z0-815/dp/4295007625/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3BXM80JNHBY45&keywords=javasilver+%E9%BB%92%E6%9C%AC&qid=1658066191&sprefix=javasilver+%E9%BB%92%E6%9C%AC%2Caps%2C355&sr=8-1)のP234_第7章_13の問題をIDEで書き写しながら
少しコードを変更したりして理解を深めていた所「へぇー」となったのでメモ先に言っておくと以下に記載するようなコードはわざわざ書かないと思います。
### 「へぇー」となったこと
1. interfaceにprivateであればdefaultメソッドじゃない具象メソッドが定義することができる。
ライブラリ開発者より指定されたバージョンを利用してアプリケーションを作る
# はじめに
記載情報は CI/CD に関連します。
実務上関わった環境・機能を身近な情報としてお届けしたく、投稿をはじめました。
各学習上、お金のかからない方法を選択していきます。以下の手順を実施することで、アプリケーション開発者がライブラリ開発者より指定されたバージョンを利用してアプリケーションを作る工程を模倣します。
## 対象者と関連環境・機能
この記事は下記のような人を対象にしています。
– CI/CD 初学者
– プログラミング初学者
– 駆け出しエンジニア記載している環境・機能は以下です。
– Java
– Spring Boot
– Spring Web
– Spring Tool Suite 4
– Gradle
– Azure DevOps
– Azure Artifacts## 準備
| No | 参照 URL
Jar を作り、Azure Artifacts を利用して成果物を配布する
# はじめに
記載情報は CI/CD に関連します。
実務上関わった環境・機能を身近な情報としてお届けしたく、投稿をはじめました。
各学習上、お金のかからない方法を選択していきます。以下の手順を実施することで、ライブラリ開発者が Jar の Library を作り、Azure Artifacts を利用して成果物を配布する工程を模倣します。
## 対象者と関連環境・機能
この記事は下記のような人を対象にしています。
– CI/CD 初学者
– プログラミング初学者
– 駆け出しエンジニア記載している環境・機能は以下です。
– Java
– Spring Tool Suite 4
– gradlew
– Azure DevOps
– Azure Artifacts## 準備
| No | 参照 URL |
| –
Java(Spring)のテストを早くするために頑張ったこと
# はじめに
私のチームではSpringFrameworkを使っているのですが、JUnitテストが**2時間半**もかかってしまい、あまりの遅さのため日々テストが早く終わってくれーという祈りとともに仕事をしていたのですが
さすがに、どげんかせんといかんということで実施した施策を以下記述いたします。# 現状分析
– ComponentScan対象は全クラス(←雑すぎる・・・)
– ComponentScanだけで18秒程度かかっている
– どうやらクラス単位でコンポーネントスキャンしなおし、ApplicationContextを作り直しているということはログからわかった(←これが最大のトラップでした)# 作戦1:ComponentScan対象を減らす
ComponentScan対象があまりに多いことも1つの問題だったため
スキャン対象のパッケージをがんばって減らしてみました。“`
@ComponentScan(
basePackages={
“jp.xxx.xxx”,
“jp.yyy.yyy”,
“jp.zzz.zzz”
}
)
“`
Gradleテスト時にテスト用の環境変数をセットする方法
# この記事の概要
Gradleでテストを実行する際の、テスト用環境変数をセットする方法を紹介します。筆者はHottyDBという検索エンジンとレコメンドエンジンの機能を搭載したRDBMSを個人開発しています。
この記事では、そのHottyDBを開発する際に利用した方法を紹介したいと思います!ちなみに、過去の記事でHottyDBに関する解説もしていますので、よければそちらも参照してみてください!!
https://qiita.com/toru1055/items/0fe400989373823e9c78
# build.gradleへの追記
以下のようなブロックを `build.gradle`へ追記してください。
“`
tasks.withType(Test) {
systemProperty(“`環境変数名1`”, `設定値1`)
systemProperty(“`環境変数名2`”, `設定値2`)
…
}
“`例:環境変数=`SAMPLE_VAL`に値=`3`を設定する場合
“`
tasks.withType(Test) {
Visual Studio CodeのJava環境でエラー出たとき
## 経緯
知り合いの方からJavaをVSCodeで動かすときにエラーが出たとの相談があった。
自分はMacを使ったことがないので調べながらサポートしてみた。#### 発生したエラー
![qOe0qJxZ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/224453/cef8bb4e-e811-2301-18e7-a2625a69edb5.png)
“`
There is no valid JAVA_HOME setting to launch Gradle Language Server.
Please check your “java.jdt.ls.java.home” setting.
“`## 結論
「Open Settings」ボタンで開く `settings.json` にjava.homeを設定する。
記事によっては `”java.home”: “/Library~”`と書かれているが、
エラーで出た `java.jdt.ls.java.home` を指定することで解消し
配列の要素m個からn個取る組み合わせ(配列)を列挙する
## Javaで配列の要素m個からn個取る組み合わせ(配列)を列挙する
VBAマクロで、配列の要素m個のなかからn個とる組み合わせの配列を求める課題があった。まず、Javaで、コレクションを使用せず、配列だけを使用して、組み合わせの結果の配列を列挙するコードを書いた。それをVBAに移植した。忘れないうちに残しておく。
まず、順列組み合わせの式を確認する。
– P(n) : n! : 0 <= n 、n = 0 のとき P(n) = 1 - P(n,r) : n! / (n-r)! : 0 <= r <= n 、r = 0 のとき P(n,r) = 1 - C(n,r) : n! / ((n-r)! * r!) : 0 <= r <= n 、r = 0 のとき C(n,r) = 1 階乗 P(n)を定義。VBAに移植するので不用意に再帰しない。 ```Java private int factorial (int n) { int result = 1; while (n > 0) result *= n–;
return result;
}
“`順列 P(