JAVA関連のことを調べてみた2023年07月30日

JAVA関連のことを調べてみた2023年07月30日

Maven で MariaDB のデータを読む

こちらのページを参考にしました。
[Javaコネクター(Maven利用)](https://mariadb.com/kb/ja/javamaven/)

## MariaDB の用意

MariaDB が動いていることを確認

“`text
$ sudo systemctl status mariadb
● mariadb.service – MariaDB 11.0.2 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; preset:>
Active: active (running) since Sun 2023-07-30 11:20:45 JST; 19min ago
“`

次でデータが読めることとします。
データベース city
ユーザー scott
パスワード tiger123
テーブル cities

“`text
$ mariadb -uscott -ptiger123 city
Reading table informatio

元記事を表示

[リサーチ・メモ] トラストストアに証明書を追加する

## 背景
仕事でSendGridの単体打鍵を実施しようとした際に、下記エラーが発生した。トラストストアに証明書を追加する必要があり、実装したことが無かった為、メモとして纏める。
“`
[ERROR ] CWPKI0823E: SSL ハンドシェークの失敗: SubjectDN [CN=*.api.sendgrid.com] の署名者がホスト [api.sendgrid.com:443] から送信されました。 SSL 構成別名 [defaultSSLConfig] にあるトラストストア [public.jksへのパス] にこの署名者を追加する必要がある可能性があります。 SSL ハンドシェーク例外からの拡張エラー・メッセージ: [PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target]
“`

## そもそもトラストストアとは
信頼できる発

元記事を表示

エンジニア歴3ヶ月、新しい現場にて学んだこと

## 新しい現場のタスク
結合テストを行っていました。
特に自分が担当しているのは、データを入れるデータベースに様々なデータを格納し、テストを実行していました。

## 学んだこと
### ①何の為に仕様書やテストがあるのか考えてみる
「どんなデータをDBに格納すると良いのか」、「資料のどこを見たら良いのか」という不安を持ちつつ、テストを消化していました。そこで、テストする意味や仕様書が作成される理由を考え見ると、目的が見え、自分が見るべきポイントや適切なテスト用のデータを知るきっかけに繋がりました。

### ②入力値と出力値を通じてDBの関係性を理解できる

### ③ポジティブ思考を持つ
タスクが消化出来ていないことを報告することや分からないことを質問することは、億劫になる行動です。私は叱責されるイメージがあるからだと思っています。また、SES事業を展開する企業に雇用されている私のようなエンジニアにとっては、動き続けることが大切だと思っています。そこで、報告や相談しても、受け入れてもらえるというイメージを持ったことで、より気持ちを楽にできるようになりました。

### 準備の重要

元記事を表示

[Java] 文字列の書式整形

# format()メソッドとは
* 整形した文字列を組み立てるための静的メソッド
* これまで学習してきた静的メソッドはStringクラスがnewしないで使えるから
# 書式指定文字列
* 下記のコードの第1引数に指定するのは、`書式指定文字列`(組み立てる文字列の雛形を指定する)です
* `%`記号の部分は`プレースホルダ`(第2引数以降で指定した具体的な値が順に流し込まれる)です
“`java:String.format()
String.format(“%d日間の%s試験”, 5, “期末”);
//書式指定文字列
“`
# プレースホルダの文法
“`:プレースホルダの文法
% 修飾   桁   型
(省略可) (省略可) (必須)
“`
##### 修飾
* `,`…3桁ごとにカンマを入れる
* `0`…空き領域を0埋め
* `-`…左よせ
* `+`…符号を強制表示
##### 桁
* 表示桁を指定する
* `n.m`形式で指定した場合、全体`n桁`小数点以下`m桁`での表示
##### 型
* `d`…整数
* `s`

元記事を表示

【JavaGold】Statementインタフェース

## 概要
JDBCでは、`java.sql.Statement`インタフェースをベースとして、`java.sql.PreparedStatement`と`java.sql.CallableStatement`の2つのサブインタフェースでSQLを扱う。

## PreparedStatement

SQL文を事前に準備してデータベースに効率的に実行するためのインタフェースである。

#### 主なメソッド

– `void setInt(int parameterIndex, int x)` :
整数型のパラメータを指定されたインデックスにセットする。
– `void setString(int parameterIndex, String x)` :
文字列型のパラメータを指定されたインデックスにセットする。
– `ResultSet executeQuery()` :
SELECTクエリを実行し、結果を`ResultSet`として返す。
– `int executeUpdate()`:
INSERT、UPDATE、DELETEなどの非SELECTクエリを実行し、影響を受けた行数を返

元記事を表示

[速習] Spring 第1回 ソフトウェアのプロフェッショナルへの道

![c01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3521573/c038d9bd-f679-1a0b-7881-996269ddbfbf.png)

## Springの魅力

SpringはJavaのフレームワークとして世界中のWebアプリケーション開発でその強力さと多機能性から広く活用されています。その成功は、開発者にとっての柔軟性、拡張性、そして後方互換性の魅力によるものです。

“`mermaid
graph TB;
sf[Spring Framework] –> scc[Spring Cloud];
sf –> sd[Spring Data];
sf –> sb[Spring Batch];
sf –> so[Spring Boot];
sf –> ss[Spring Security];
sf –> si[Spring Integration];
“`

特に、Spring Framework[^1^]がコア機能を提供し、Spring Boo

元記事を表示

日本語トランスコンパイラ言語 Re:Mind(リマインド)の試作バージョン(ターゲット言語Java,C#,Mind)をC#で実装してみた(リテイク)

# はじめに
[前回記事](https://qiita.com/mylifewithviolin/items/abae37afefb42ca8ef31)はRe:Mind試作品の初号機の実装情報で、ターゲット言語をJava,C#,Mindとしていましたが、トランスコンパイル後のソースコードで、Java,C#ではまさかの実行時エラーという結果でございました。これはRe:Mindの構文仕様で関数の戻り値ない場合は省略可としていた点の考慮を内部設計時に忘れていたというオチでしたが、いろいろ考えた末にとりあえず冒険するのはやめて、構文仕様として戻り値ない場合はvoidを明記というように仕様訂正させていただきます。これに伴い過去設計情報・仕様情報も漸次訂正を行って舞います。

## この記事内容の作業目的
本試作範囲は[策定仕様](https://qiita.com/mylifewithviolin/items/9a6abbab62c0f5e27d4b)のごくごく一部です。ターゲット言語は一部のみ対応、言語の対応ソース構文も超限定的です。

日本語トランスコンパイラ言語 Re:Mind(リマイン

元記事を表示

Maven で Web アプリを作成

こちらの記事と同じ事を行いました。
[Java MavenでWeb Applicationを作成する](https://lifehack.world/java-maven-web-application/)

## 使ったソフト

Java のバージョン

“`text
$ java –version
openjdk 20.0.2 2023-07-18
OpenJDK Runtime Environment (build 20.0.2+9)
OpenJDK 64-Bit Server VM (build 20.0.2+9, mixed mode, sharing)
“`

Maven のバージョン

“`text
$ mvn –version
Apache Maven 3.8.7 (b89d5959fcde851dcb1c8946a785a163f14e1e29)
Maven home: /opt/maven
Java version: 20.0.2, vendor: N/A, runtime: /usr/lib/jvm/java-20-openjdk
Default loc

元記事を表示

Javaの例外処理について学習してみた

# 概要
Javaの例外処理について学習してみました。以下のページを参考にしました。

例外処理

https://www.javadrive.jp/start/exception/

例外とは

https://www.javadrive.jp/start/exception/index1.html

try文

https://www.javadrive.jp/start/exception/index2.html

必ず実行する処理の記述(try..catch..finally)

# まとめ
何かの役に立てばと。

元記事を表示

OpenAIとJavaでAIアシスタントを実装する

こんにちは、皆さん。今回はAI技術に興味を持つプログラマーの皆さんに向けて、OpenAIとJavaを使ってAIアシスタントを作成する方法について解説します。

# 問題点

AI技術は日々進化しており、その応用範囲は広がり続けています。その中でもAIアシスタントは、私たちの生活にとても便利な存在となっています。しかし、一方で、その具体的な作成方法については必ずしも明確に説明されているわけではありません。そのため、自身でAIアシスタントを作りたいと思っても、どう始めてよいか迷ってしまう方も少なくないでしょう。

# 解決方法

この問題を解決するために、今回はJavaとOpenAIを使ったAIアシスタントの作り方を具体的に解説します。サンプルコードを元に、順を追って説明していきます。サンプルコードは[こちらのGitHubリポジトリ](https://github.com/blue-islands/gpt4-java-sample)にあります。

# Maven設定

このプロジェクトを進めるにあたって、まず必要となるのが依存関係の設定です。`pom.xml`内に以下のように記述して、必要

元記事を表示

Maven の使い方

こちらの記事と同じ事を行いました。
[Maven で Java プロジェクトの構築](https://spring.pleiades.io/guides/gs/maven/)

## 使うソフト

Java のバージョン

“`text
$ java –version
openjdk 20.0.2 2023-07-18
OpenJDK Runtime Environment (build 20.0.2+9)
OpenJDK 64-Bit Server VM (build 20.0.2+9, mixed mode, sharing)
“`

Maven のバージョン

“`text
$ mvn –version
Apache Maven 3.8.7 (b89d5959fcde851dcb1c8946a785a163f14e1e29)
Maven home: /opt/maven
Java version: 20.0.2, vendor: N/A, runtime: /usr/lib/jvm/java-20-openjdk
Default locale: en, platform

元記事を表示

React,Javaアプリケーションでカレンダー機能実装

# 最初に
今回の記事は[React + SpringBootアプリ 簡易まとめ](https://qiita.com/Sesoniso/items/3c1beb243a093d80e247)の記事の続きで旅行予約管理アプリケーションの**カレンダー機能実装**についてまとめようと思います。
カレンダー機能実装にはReactのReact Datepickerを使用し、[こちら](https://reactdatepicker.com/)のサイトを参考にして実装しました。

本記事の完成画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2645309/0a5cbf77-c6f0-9874-3d4e-6b41fae09963.png)

# 1. サンプルコード
“`js
import axios from “axios”;
import React, { useEffect, useState } from “react”;
import ReactDatePicker from “r

元記事を表示

[Java] 正規表現

# はじめに
### 正規表現とは
* 特殊な記号とか構文を使って文字列パターンを指定し、対象の文字列とマッチするか調べるやつです
* Stringクラスの`matches`メソッドを使い判定を行います
* `matches`メソッドのように、文字列がマッチするか処理することを`パターンマッチング`といいます
* matchesメソッドの戻り値は`boolean`。真偽値を返す(tureかfalse)
### 文字列パターン(パターン)
* `”[A-Z] [A-Z0-9] {7}”`このような文字列を指す
# 正規表現の基本文法
## 通常の文字
* パターン内に記述された一般的な文字はそれと同じ文字を表す
たとえば`”ABC”`は「1文字目がA、2文字目がB、3文字目がCである」という条件を示す
## ピリオド
* 任意の`1文字`であればよい
パターン中にピリオド記号(.)があった場合、その部分に任意の1文字(なんでもいい必ず1文字)があらばよい

## アスタリスク
* 直前の文字の`0回以上の繰り返し`
パターン中にアスタリスク(*)が含まれていた場合、直前の文字の`0回以

元記事を表示

Javaでディレクトリを中身ごと消す方法

Javaの標準APIにはディレクトリを中身ごとごっそり消すというのが無い。
Files.walk()で中身まで再帰的に取得できるけど、中身のほうが後に来るからそのままでは消せない。

中身が後に来ることもあるというのではなく、中身が後と仕様で決められているので、逆順にすれば消せる。
“`java
Files.walk(Path.of(“tmp”))
.map(x -> Stream.of(x))
.reduce(Stream.empty(), (x, y) -> Stream.concat(y, x))
.forEach(x -> x.toFile().delete());
“`
ソートするとコストはnlognなので、これより重くなるはず。

元記事を表示

【Java】Word文書の空白行を削除する方法

スキャンや変換などで作成されたWord文書には、非常に多くの空白行がある場合があります。 これらは文書の書式を混乱させ、文書の外観に影響を与え、読みにくくする可能性があります。 そのため、文書の可読性と美観を高めるためには、これらの空白行を削除する必要があります。 この記事では、無料の[Free Spire.Doc for Java](https://jp.e-iceblue.com/introduce/free-spire-doc-for-java.html)を使用して、Javaプログラム経由で**Word文書から空白行をすばやく削除する方法**を紹介します。

– **[Word文書内のすべての空白行を削除する](#word文書内のすべての空白行を削除する)**

### 【依存関係の追加】
この記事の方法は、無料のWord文書処理Java API、Free Spire.Doc for Javaが必要です。このAPIは、[公式サイト](https://jp.e-iceblue.com/download/free-spire-doc-for-java.html)からダウンロードするか

元記事を表示

初めて要件定義を担当した話

この度弊社[イマジテック](https://imagitech.io/)は自社サービスを新規開発することにしました。

新規開発とのことで最初にすべきことはもちろん
**要件定義です。**

本記事では上流工程の経験がない四年目エンジニアが
要件定義フェーズで得た知見、苦悩を工程に沿ってつらつらと書き記します。

# 目次

[1.要件のヒアリング](#1-要件のヒアリング)
[2.要件定義書作成で壁にぶつかる](#2-要件定義書作成で壁にぶつかる)
[3.非機能要件の山にぶつかる](#3-非機能要件の山にぶつかる)
[4.おわりに](#4-おわりに)
[5.予告](#5-予告)

# 1. 要件のヒアリング

本プロジェクトの初期案は弊社代表発なので、[代表](https://twitter.com/nakai_imagitech)からお話を伺いました。
サービスのイメージ、そのサービスを思いついた理由などなどを聞きました。

ヒアリングを通してイメージの共有ができました。

ここまでは特に問題なく進んでいたつもりでした。

# 2. 要件定義書作成で壁にぶつかる

サービス内容を

元記事を表示

Javaのmainメソッドについて学習してみた

# 概要
Javaのmainメソッドについて学習してみました。以下のページを参考にしました。

mainメソッドと引数

https://www.javadrive.jp/start/main/

引数を指定してmainメソッドを呼び出す

https://www.javadrive.jp/start/main/index1.html

コマンドライン引数の数を確認

https://www.javadrive.jp/start/main/index2.html

# まとめ
何かの役に立てばと。

元記事を表示

結構、間違ってる”浮動小数”の理解。概数、真数というデータ型

# 浮動小数点数と固定小数点数

浮動小数点数(float/double)と固定小数点数について、基本的な情報処理の知識としてみなさま学びますね。
そして、float/doubleは少数使いたくなったらプログラムでも気軽に使いますね。

「小数点の管理の仕方の違い」と習いますが、実際には非常に重要な機能の違いがあります。

# 0.1 + 0.2 => 0.30000000000000004

* 浮動小数点数 => ほとんどの少数は表現できないおおよその数字
* 固定小数点数 => 少数を表現できる実際の数字

浮動小数点数がどのぐらいおおよそかといえば、↓ぐらいデタラメ

“`javascript
0.1 + 0.2
=> 0.30000000000000004

0.1 + 0.7
=> 0.7999999999999999
“`
↑はJavaScriptで一瞬で再現可能。

`フロントエンドでお金の計算するの怖い`という時に使いましょう

# 2進数で無限小数になる数は表現できない

浮動小数点数が誤差を生じる理由は、2進数で無限小数になる数を正確に表現できないためです。

元記事を表示

初心者がJava WebアプリケーションをAzureにデプロイした話

勉強の一環で、Servlet/JSPを使ったWebアプリケーションをチーム開発で制作中です。その際実践したAzureへのデプロイ手順をまとめてみました。

# やりたいこと
1. Eclipseで作った動的WebアプリケーションをAzureにデプロイしたい
→ [Azure Toolkit for Eclipse](https://learn.microsoft.com/ja-jp/azure/developer/java/toolkit-for-eclipse/)で解決

2. WebアプリケーションからJDBCでAzureに建てたDBサーバに接続できる状態にしたい
→ [Azure SQL Database](https://learn.microsoft.com/ja-jp/azure/azure-sql/database/?view=azuresql-db)を作成することで解決

3. 勉強目的なので、無料ですべて済ませたい
→ [Azureの無料アカウント](https://azure.microsoft.com/ja-jp/free)を作ることができるっぽい(**※筆者未確

元記事を表示

[Java] Char型の文字比較

# はじめに
今回は参考にしている書籍のあるコードを疑問に思ったので理解するまでの課程です
“`java
public class Check {
public boolean isValidPlayerName(String name) {
if (name.length() != 8) {
return false;
}

char first = name.charAt(0);

if (!(first >= ‘A’ && first <= 'Z')) { System.out.println("最初の文字に数字は使えません"); return false; } for (int i = 1; i < 8; i++) { char c = name.charAt(i); if (!((c >= ‘A’ && c <= 'Z') || (c >= ‘0’

元記事を表示

OTHERカテゴリの最新記事