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

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

JythonでPythonとJava間での値の受け渡し

Javaにある値をPythonに渡す方法と、Pythonにある値をJavaに持ってくる方法です。
Pythonの型で値を渡すためのPyObjectの生成方法も紹介します。

# PythonInterpreterでの受け渡し

### JavaからPythonに値を渡す

“`java:
public static void main(String[] args) {
StringWriter writer = new StringWriter();
try(PythonInterpreter pyInterp = new PythonInterpreter()) {
pyInterp.setOut(writer);

PyInteger num = new PyInteger(5);
pyInterp.set(“num”, num);
pyInterp.exec(“print(num)”);
pyInterp.exec(“print(type(num))”);

System.out.println(writer);
}
}
`

元記事を表示

Springboot+MyBatisの環境構築/HelloWorldの出力

Javaを触ってみるローカル環境をつくりました。環境構築のたびにドキュメントを探すのは大変なので、備忘録として環境構築手順を残しておきます。SpringbootとMyBatisを使うような構成です。環境構築をして、HelloWorldをブラウザに表示させるところまでを記載します。

開発環境は以下の通りです。

| JDK | 言語|フレームワーク|ビルドツール|テンプレートエンジン
|:———–:|:————:|:————:|:————:|:————:|
| Amazon Corretto 17|Java 17|Spring boot|Maven|Thymeleaf |

|データベース管理システム | O/Rマッパー |
|:———–:|:————:|
|MySQL| MyBatis|

|統合開発環境(IDE) | データベース管理ツール|
|:———–:|:————:|
|STS| MySQL Workbench|

# JDKの

元記事を表示

[Java] 日付と時刻

# はじめに
DateとCalenderクラスは古い機能で限界があるとのことなので
今回はJava8から新しく加わった`java.timeパッケージ`の代表的なクラスを学習しました

# java.timeパッケージの代表的なクラス
## Instant、ZoneDateTime
* 世界における、ある「瞬間」の時刻を、ナノ秒単位で厳密に指し示し、保持する
## LocalDateTime
* 日常的に使われる「曖昧な日時」を保持する
## Period、Duration
* 2つの異なる時刻や日付の期間を保持する
# 特定日時を指し示すクラスで共通に利用されるメソッド
#### 静的
* now()…現在日時からインスタンスを生成する

* of()/of~()…他の種類から変換してインスタンスを生成する

* parse()…”2023/07/01″のような文字列に変換する。文字列書式は`DateTimeFormatter`で指定する

#### 静的じゃない
* get~()…格納する年や月の情報を取得する。「~」部分には、`Year, Month, DayOfMonth, Ho

元記事を表示

【Salesforce】データローダで「Java Heap Space」エラーが発生した時の対処法

データローダでイベントログをエクスポートする時に「Java Heap Space」エラーが発生しました。

データローダでエクスポート時に「Java Heap Space」エラーが出た時の対処法について紹介します。

データローダの設定のバッチサイズを低くします。可能な限り1に近づけます。

詳細は以下から
https://hishikiryu.com/salesforce-dataloader-java-heap-space/

元記事を表示

JavaでXMLデータを読み取ってMap / List に格納する

# はじめに
実装内容にてXMLデータを扱うプロジェクトの際にXML文字列から要素を抽出して、
ListクラスやMapクラスに格納する処理を調査していたのでそのアウトプットで記事にします。

# 環境
* Windows 11
* Java 17
* Juniper

# XMLデータから要素を取得して、データ構造に格納する
まずは、Mapクラスに格納する方法から、続いてListクラスに格納する方法と紹介していきます。
Listクラスに格納する際にちょっとした注意点とその対策方法も記載していますので、
併せて読んでいただけたら幸いです。

## XMLデータ例
前提として扱うデータ形式は下記のようになっています。
``タグから下に何階層かになっており、`` タグの中に操作対象となる
`` タグと `` タグがあります。

それぞれの `` と `` の中身を取得していきます。
“`xml

元記事を表示

【SpringBoot】LocalDate型のthymeleafでフォーマットして表示する

# はじめに
SpringBootでThymeleafを使用した日付の表示について、
フォーマット方法がいまいち理解できず行き詰まったのですがなんとか解決できましたので、その証跡を残します。

## 参考資料

https://www.tuyano.com/index3?id=7496003&page=4

https://www.thymeleaf.org/doc/tutorials/3.1/usingthymeleaf.html#temporals-java.time

### 実際のコード

HTMLファイル(日付入力用)
“`html

日付を指定してください。



“`

Controllerクラスの処理
“`java
@GetMapping(“/day”)
public String day(@Req

元記事を表示

Javaの正規表現について学習してみた

# 概要
Javaの正規表現について学習してみました。以下のページを参考にしました。

Java正規表現の使い方

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

パターンとマッチする

Javaでの正規表現の利用方法

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

正規表現パターンにおけるエスケープ処理

https://www.javadrive.jp/start/regex/index6.html

PatternオブジェクトとMatcherオブジェクトを作成する

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

文字列の全体がパターンとマッチするか調べる(Matcher.matches)

https://www.javadrive.jp/start/regex/index3.html

文字列の先頭からパターンとマッチするか調べる(Matcher.lookingAt)

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

元記事を表示

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 setXxx(int parameterIndex, Xxx x)` :
指定の型のパラメータを指定されたインデックスにセットする。
– `void getXxx(Xxx)`:
実行後の出力パラメータの値を取得する。
引数は以下のいずれかで渡す。
– 列番号を`int`型で渡す。
(例)`getInt(1)`
– 列名を`String`型で渡す。
(例)`getString(“name”)`

:::note warn
列番号は0からではなく**1から始まる**点に注意する。
:::

– `ResultSet executeQuery()`

元記事を表示

[速習] Spring 第1回 ソフトウェアのプロフェッショナルへの道 (Springの魅力/Webアプリケーションの基本)

![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回以

元記事を表示

OTHERカテゴリの最新記事