JAVA関連のことを調べてみた2022年08月25日

JAVA関連のことを調べてみた2022年08月25日
目次

SpringでのCifs実装

# 本記事を書くきっかけ
「Cifs通信をJavaでやりたいんだけど」と言われので、調べたらSpringにもCifsの仕組みがあったので、
自宅で調査した内容に限り纏めて記事にしてみました。
# Spring Integration SMB
Spring Integration(Spring 外部機器接続の統合プロジェクト)にて管理されているSMB通信(Cifs)用のライブラリ。
内部で[jcifs](https://github.com/codelibs/jcifs)というライブラリをラップしています。
jcifsを使用されたことがある方は、おおむね使用方法はjcifsと同様になる認識で問題ありません。
# 実装方法
[公式](https://github.com/spring-projects/spring-integration-extensions/tree/main/spring-integration-smb)では下記のような実装例が紹介されており、この実装ではSmbSessionFactoryをDIして使用するようになっています。
“` java
@Bean
publi

元記事を表示

JavaとGridDBによるAdaBoost、バギング、スタッキング、およびVotingの実装

AdaBoost、バギング、スタッキング、Votingはすべてアンサンブル学習の手法です。アンサンブル学習は機械学習の一種で、一般に「弱い学習器」や「ベースモデル」と呼ばれる複数のモデルを特定の問題を解決するために学習させ、より良い結果を得るために組み合わせるものです。弱いモデルを正しく組み合わせると、より正確で頑健なモデルが得られるという仮説に基づいています。

ソースコードの全文はこちらをご覧ください。

それでは、今回使用するアンサンブル学習の方法について説明します。

1\. **バギング**

バギングは “Boostrap Aggregation “の略です。ブートストラップとは、特定の学習セットから、置換を用いて異なるデータセットをサンプリングする手法になります。バギングは、1つの学習アルゴリズムを学習データの異なるサブセットに適用し、サブセットのサンプリングを置換(ブートストラップ)を用いて行うアンサンブル学習の手法です。

アルゴリズムがすべてのサブセッ

元記事を表示

Java: PDFドキュメントからイメージを抽出する方法

PDFドキュメントは、イメージやテキストなどの様々な形式のコンテンツを含むことができ、非常に実用的な文書フォーマットです。PDFドキュメント内の価値のあるイメージを自分の資料に使用したい場合は、[Free Spire.Pdf for Java](https://jp.e-iceblue.com/introduce/free-spire-pdf-for-java.html)でイメージを抽出し、指定したフォルダに保存することができます。以下は具体的なチュートリアルです。

**Spire.PDF.Jarのインストール**

方法1:
mavenを使用している場合は、次のコードをプロジェクトのpom.xmlファイルに追加することで、JARファイルをアプリケーションにインポートできます。
“`ruby:qiita.rb


com.e-iceblue
e-iceblue
https://repo.e-iceblue.com/nex

元記事を表示

Partner WSDLを使用したMaven(Java)プロジェクトの作成方法

## 経緯
Javaからsalesforceに接続する記載が少ないため、備忘録として記載。
## 手順
> 参考サイト:[Java 開発者環境の設定](https://developer.salesforce.com/docs/atlas.ja-jp.salesforce_developer_environment_tipsheet.meta/salesforce_developer_environment_tipsheet/salesforce_developer_environment_overview.htm)
## 前提
1. javaがダウンロードされていること
> 参考サイト:[Javaダウンロード](https://www.oracle.com/java/technologies/downloads/)
2. Mavenがダウンロードされていること
– インストール方法
– Windows: [ダウンロードサイト](https://maven.apache.org/)
– macOS: コマンド

元記事を表示

【備忘録】nullチェック

if (“”.equals(str))

if (str != null && str.equals(“”))

上はnullチェックも兼ねている

元記事を表示

Creates Spring Boot application runs in Java Servlet container

# On Servlet 3.0 container

If you plan to run your project on Servlet 3.0 container (e.g. Apache Tomcat start from 7.0), it is very easy to convert the project from run in command line to run in a Servlet container.
1. in software project management tool, change generate file format from jar to war, and prevent to append version number to file name
1. include **org.springframework.boot:spring-boot-starter-tomcat** into project’s dependency
1. change the class which annotated with @SpringBootApp

元記事を表示

【Spring Boot】自作のバリデーションを作る

バリデーションを自作する方法を学んだので、備忘として本記事を作成しました。

# 使用環境
– Windows10 (64bit)
– spring-boot : 2.7.1
– postgres : 11.15

# ユースケース
ユーザーを新規会員登録させるときに、emailとpasswordの入力が必須。
その際に既に登録してあるemailで新規会員登録できないようにしたいので、
入力されたemailが既にDBに登録があった場合はエラーとなるように、バリデーションを自作する。
バリデーションの名前は“@UniqueEmail“とする。

## エンティティクラスの作成
今回、ユーザー情報はusersテーブルに格納しておくので、
そのテーブルに対応する“user“クラスを作成する。
~~~java:user.java
package com.example.domain;

import文省略

public class User {
private int id;
private String email;
private String password;

元記事を表示

JAVA DTOとDAO

# DAO/DTOパターン
まず最初に、DAO/DTOパターンを理解するときに、
「なぜそんなものが必要なのか?」が一目でわかるような画像があったので
紹介したいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2661107/9feaa0a8-5d4b-4c56-2cde-88484181c01e.png)
[こちらの記事を参考にしました](https://kanda-it-school-kensyu.com/java-jdbc-contents/jj_ch04/jj_0402/)

メリットとして
– 1レコードのデータを一括で管理できるため、データの受け渡しが容易になる
– アクセス処理の回数を減らしパフォーマンスを向上することができる

よく言われるのは、
DAOはメソッドを持つがDTOはメソッドを持たないと違いを説明する人もいます

私の中での理解
`DTO`→ 型を事前に定義する。データを受け渡すためのクラス。
`DAO`→ SQLを呼び出す。データを操作するための

元記事を表示

Javaで作られたWEBアプリケーションの運用にあたってJVMのパラメータをKubernetesマニフェストで管理する

## はじめに
皆さんこんにちはasmgです。今回は、Javaで作られたWEBアプリケーションの運用にあたってJVMのパラメータをKubernetesマニフェストで管理するタスクを行なったので実現した方法を記載していこうと思います。
## 本記事の対象者
本記事は、JVMのパラメータをKubernetes マニフェストで管理することに着目しているのでkubernetesやJVMについて言及はしません。なので、KubernetesやJVMのパラメータは理解していることを前提としています。
## 本記事の実行環境
#### 検証機
* Mac Book pro 14inch M1 Pro
#### 検証環境
* kind(Kubernetes in Docker)

## 現状のJVMのパラメータの管理方法
現状、JVMの管理は以下のように行っていました。

“`Dockerfile:Dockerfile
FROM openjdk:8-jdk-oraclelinux8
COPY ./target /
CMD [“./apply.sh”, “./app.jar”]
“`
“`shell

元記事を表示

【Java】Math.randomを使わずに手軽にサイコロを作りたい【Collections】

サイコロを作りたい

ランダムに1〜6の数字が出るようなプログラムを作ってサイコロを振りたい!
Javaでサイコロを作る、と言われたら、皆さんは何を思い浮かべますか?

解答

リファレンス:Math.random 
通常、Math.random()クラスを用いて以下のような形で記述すると思います。
これはおそらく一番一般的な方法で、Javaを勉強する時に練習問題等で解いた方も多いのではないでしょうか。

“`Java:Main.java
public class Main {
public static void main(String[] args) {
int dice_num = (int)( Math.random() * 6 + 1 );
System.out.println ( “サイコロ振ったら” +

元記事を表示

ABC265A~Eの解答[Java]

## はじめに
今回はコンテスト中にDまで、コンテスト後にEが解けたのでEまで書きます。

では、見ていきましょう。

## A – Apple
問題文は[こちら](https://atcoder.jp/contests/abc265/tasks/abc265_a)

X円払って1個買うかY円払って3個買うかですが、要はどっちがお得かを求めれば良いです。
YがXの3倍より大きいならX円でN個買った方がお得です。一方、Xの三倍よりもYの方が小さいなら3個セットの方がお得です。
ということでそれをMath.minを使って記述して解きました。
Nは3の倍数とは限らないので3個セットで買うときはX*(N%3)を足すことに注意しましょう。
“`A.java
class Main{

static Library System = new Library(java.lang.System.in,java.lang.System.out);

public static void main(String[] args)throws IOException{

//値の受け取り
in

元記事を表示

blastengineのJava SDKを使って添付ファイル付きメールを送信する

blastengine(ブラストエンジン)はシンプルに使える開発者向けメールサービスを提供しています。何かと面倒なメール配信をシンプルに、かつ確実に送信先に届くようになります。

現在、Java向けに、blastengine SDKを開発しています。この記事では、その使い方を解説します。0.0.2で対応した添付ファイル付きメールの即時送信について解説します。

[blastengineMania/blastengine-java: Java SDK for blastengine](https://github.com/blastengineMania/blastengine-java)

## ユーザ登録する

blastengineにユーザ登録します。管理画面に入るためのユーザID、パスワードが手に入るので、ログインします(ユーザIDは後で使います)。

![getting-started-4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/197026/515541ad-b74e-e1e2-ac34

元記事を表示

qiitaに上がっていた初心者用webアプリ(java)を作成してみたときの備忘録

## 1.はじめ
Qiitaに投稿されていたwebアプリを作成した際に悩まされたエラーの解消方法について記載しておきます。

## 2.対象エラー
There was an unexpected error (type=Internal Server Error, status=500).
could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet

SQLに関するエラーだとはわかりましたが、今回SQLファイルは作成していなかったのでどこでエラーになっているのかわかりませんでした。

## 3.解決方法
上記エラーで検索してヒットしたサイトを見てみると、SQLテーブルを事前準備として作成しているサイトが多く見つかりました。
そこで、テーブルを作成するSQLを対象サーバー内で実行しました。
すると、エラーは消えて動くようになりました。
“`
create table customer

元記事を表示

【申し込みから合格まで】Java SE 11 Programmer IとORACLE MASTER Bronze DBAを自宅で受験した話【2022年8月版】

こんにちは!
新人エンジニアのなっしーです!

先日、Java SE 11 Programmer I(通称Java Sliver)とORACLE MASTER Bronze DBA(通称Oracle Bronze)を**自宅で受験**し、合格しました!
今回はOracle系の資格をピアソンVUEで自宅受験する際の流れや様子をご紹介したいと思います。

コロナ禍で会場に行くのが怖い!でも自宅受験ってどんな感じなんだろう…?という方の参考になれば幸いです!
~~Oracleの試験の申し込み方法難しすぎる(怒)という方も参考になるかと思います。~~

# 目次
1. 申し込む前の確認
1. 申し込み
1. 受験前日まで
1. 受験直前
1. 受験中
1. 受験後
1. 感想・おまけ

# 申し込む前の確認
試験を自宅で受験するには、以下のものが必要になります。
– ある程度強力なインターネット環境
– PC
– 顔を映すためのWebカメラ(PC内蔵のものでも可)
– 自分1人だけの静かな環境(他者がカメラに映り込んだ時点で即アウト)
– キレイな机
– 顔写真付きの身分証明書
– スマホ(受

元記事を表示

JavaでSpringを理解するまでのおすすめ本

# 概要~Java初心者が現場使えるSpring/SpringBootを理解するまでの参考書ロードマップ~

最近はサクッとプログラミングできるPythonがお気に入りですが、実は仕事の現場では専らJavaを使ってます。
Javaが流行って何十年か経過した結果、現場にはJavaシステムが浸透しており、それらJavaシステムを一度に別のプログラム言語に置き換える状況はなかなか考えにくく、Javaの需要もまだしばらく続くだろうなぁと思っています。

そんな中、新人は毎年入ってくるわけで、Pythonできます。と、言われればそれはそれで重宝するのですが、実際にはJavaも頑張ってね。となります。
そんな状況がここ2、3年続いた結果、私が10年以上働く間にJava初心者に何を学んでもらえばいいか考え、行き着いた結果の良質な参考書10選を今回紹介します。

題して、**Java初心者が現場使えるSpring/SpringBootを理解するまでの参考書ロードマップ**です。

ついでにJavaで本格的にプログラミングが出来るようになっただけで物足りない。
さらに上を目指す意識高い系の皆さん向けの番

元記事を表示

【Angularアプリケーション開発 #9】ログイン機能とセッション管理について

# はじめに
今回、IDとパスワードでのログインを実装しました。
また、ログイン後の画面に直接アクセスした場合、ログイン状態を確認し、遷移先を分岐させるようにしました。

## ログイン
### ログイン画面
“`html:login.component.html

Login


コネクションプーリングとは?なぜ要るのか?を Oracle Database で簡単に説明してみる。

社内で「コネクションプールって何ですか?なぜ要るんですか?」という素朴な疑問が発生したので、Oracle Database をモデルにして簡単に説明してみますやで。
彡(゚)(゚)

# 1. 前提知識1:Oracle Database のプロセス・アーキテクチャ

Oracle Database は UNIX/Linuxプラットフォーム の場合はマルチプロセスのアーキテクチャが採用されています。

> Oracle Databaseデータベース概要 19c
> 15 プロセス・アーキテクチャ
> https://docs.oracle.com/cd/F19136_01/cncpt/process-architecture.html#GUID-85D9852E-5BF1-4AC0-9E5A-49F0570DBD7A
> プロセス実行のアーキテクチャは、オペレーティング・システムによって決まります。
> たとえば、Windowsでは、Oracleバックグラウンド・プロセスはプロセス内の実行スレッドです。
> LinuxおよびUNIXにおけるOracleプロセスは、オペレーティング・システ

【日曜大工】4歳の子供に、Javaでジャンケンゲームを作った話。

4歳の子供とのテレビのチャネル争いが絶えない。笑
休日は、特にね。そんな時に、閃いた!!!

最近、保育園で、「ひらがな」と「カタカナ」を勉強したとの事なので、ジャンケンゲームを作ってあげれば、それで一日中、遊ぶのではないか?
「Youtubeを見るよりも、文字の勉強になるのでは?」と都合よくも考えて、試作しました。

参考サイトはこれで、私が下部にアップしたコードは、このサイトからの「ほぼコピー」です。
https://camp.trainocate.co.jp/magazine/java-game/

ただ、上記サイトは、パッケージ概念の説明が主目的なので、パッケージを使っているが、私は、それを単一コードに書き換えました。(それだけ。猿でもできる。。。。)

「アンパンマンじゃんけんゲーム」と命名しました。
こんな感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1665829/1df68142-6936-4bf0-0d74-220d64de5433.png)

グー、チョ

【Minecraft Quilt】Minecraft 1.19.xで前提ModがFabricなModをQuiltへ移植してみた

# はじめに
この記事では、Quiltでのコーディング方法(QSLなどの使い方)にも一応触れますが、
Quiltがどういうものなのか、全体的に紹介する記事となっています。

私自身もQuiltに詳しいわけでも無く、数日前に初めて知ったばかりですが、
FabricからQuiltに移植することにしたので、知名度向上の意味も込めて、
記事を残しておきます。

# 開発環境について

開発環境についてみる

## 移植前の開発環境

|項目 |内容 |
|:———————-|:——————————–|
| IDE | IntelliJ IDEA Community 2022.2 |
| Yarn mappings | 1.19+build.2 |
| Fabric loader

Javaで初期値を設定したListの作り方

## 概要
JavaでListを作成する際に、1行で書く方法のまとめ。
いつも忘れちゃうので。

## 基本的な初期化
キホンのキです。new してaddする。

“` java
import java.util.ArrayList;
import java.util.List;

public class Sample {

public static void main(String args[]) {

List list0 = new ArrayList();
list0.add(“a”);
list0.add(“b”);
for(String x : list0) System.out.println(x);
}
“`

## 初期値込みで1行で書く方法

以下3つ例示します。
(1) `List.of`
(2) `Arrays.asList`
(3) arrayListと`Arrays.asList` の併用

“` java
import java.util.Ar