- 0.1. Javaで「文字列の連結(+演算子)」の動作を確認してみた
- 0.2. Mockito & PowerMockitoまとめ(Mock オブジェクト宣言・メソッド定義編)
- 0.3. ADManager Plus から PowerShell を使用して LDAP 情報を Java に送信する方法
- 0.4. Java11 学習
- 0.5. Javaで受信したLDAPデータをOracleDBに登録する方法
- 0.6. LDAPデータをJavaで受信する方法
- 0.7. アジャイルソフトウェア開発の奥義 ~依存関係の逆転~をかみ砕いてみる
- 0.8. 再帰関数でフィボナッチ数列を書いてみる
- 0.9. キャメルケースの重要性
- 0.10. Eclipse + Java + Maven の環境で Doma を動かす
- 0.11. Spring Boot(Java)のおすすめするディレクトリ/ファイル構成
- 0.12. Java AmazonS3 AssumeRole 自分用メモ
- 1. AssumeRole
Javaで「文字列の連結(+演算子)」の動作を確認してみた
# 概要
Javaで「文字列の連結(+演算子)」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/ope/index14.html
# 実装
以下のファイルを作成しました。
“`JSample14_1.java
class JSample14_1{
public static void main(String[] args){
System.out.println(45 + 18 + “point”);
System.out.println(“point” + 45 + 18);
System.out.println(“point” + (45 + 18));
}
}
“`以下のコマンドを実行しました。
“`
$ javac JSample14_1.java
$ java JSample14_1
63point
point4518
point63
“`# まとめ
何かの役に立てばと。
Mockito & PowerMockitoまとめ(Mock オブジェクト宣言・メソッド定義編)
### 動機
春は新卒研修の季節(僕も新卒)!新卒研修といったらなんだかんだ Java!学生のうちにあまり書く機会はないけど Java を使った大人の開発で書く必要があるものと言ったらテストコード!テストコードといったら Mockito!(イマココ)### 本記事のゴール
「Mockito, PowerMockito を用いてモックを行う際に必要な準備(宣言や定義)の記述」を、Mock 対象についての特徴分けを元にして覚える・整理する。## はじめに
正直、Mockito 単体についてなら @opengl-8080 さんの [Mockito使い方メモ](https://qiita.com/opengl-8080/items/dcdf2cb14f2642240a5b)を読まれた方が良いです。
非常に詳しく書かれている上にわかりやすいです。
本記事は、PowerMockito と絡めつつ全体をさっぱりと理解する感じのテイストとなっています。### Mockito, PowerMockito について
既に知っているよという方は飛ばしてください。
ADManager Plus から PowerShell を使用して LDAP 情報を Java に送信する方法
ADManager Plus から PowerShell を使用して LDAP 情報を Java に送信する方法について説明します。以下の手順に従って、PowerShell スクリプトで LDAP 情報を取得し、Java アプリケーションにその情報を送信するプロセスを設定します。
`手順`
**①PowerShellスクリプトでLDAP情報を取得**
**②取得した情報をHTTPリクエストとしてJavaアプリケーションに送信**
**③JavaアプリケーションでHTTPリクエストを受信して処理****1. PowerShellスクリプトでLDAP情報を取得**
以下のPowerShellスクリプトを使用して、LDAP情報を取得し、JSON形式に変換します。“`ruby:powershell
# PowerShellスクリプト: Get-LDAPInfo.ps1
# LDAPサーバの接続情報を設定
$ldapServer = “LDAP://your-ldap-server”
$searchBase = “DC=example,DC=com”
$searchFilter
Java11 学習
Java 11 Silver 受験対策 & 今後の備忘録
# 型
Javaのデータ型には**プリミティブ型**と**参照型**がある。参照型には更にクラス型、配列型、列挙型などの分類がある。
– プリミティブ型
– boolean
– char
– byte
– short
– int
– long
– float
– double
– 参照型
– クラス型
– インターフェース型
– 配列型
– 列挙型## プリミティブ型
| 型 | サイズ | 説明 | 値 |
|:-:|:-:|:-:|:-:|
| `boolean` | 仕様無 | 真偽値 | `true`, `false` |
| `char` | 16bit | Unicode文字 | `¥u0000` ~ `¥uFFFF` |
| `byte` | 8bit | 整数 | `-128` ~ `127` |
| `short` | 16bit | 整数 | `-32768` ~ `32767` |
| `int`
Javaで受信したLDAPデータをOracleDBに登録する方法
受信したLDAP情報をOracleデータベースに格納するには、以下の手順に従います。まず、LDAPから情報を取得し、それをOracleデータベースに挿入します。
`手順`
**①必要なライブラリを追加する**:
・JNDIライブラリ(Java SEに標準で含まれています)。
・JDBCドライバ(Oracle用のJDBCドライバを追加する必要があります)。**②Oracleデータベースに接続する**:
・JDBCを使用してデータベースに接続します。**③LDAPから情報を取得する**:
・前述の通り、JNDIを使用してLDAPから情報を取得します。**④取得した情報をOracleデータベースに挿入する**:
・JDBCを使用してデータベースに情報を挿入します。`コード例`
以下に、LDAPから取得した情報をOracleデータベースに格納するためのJavaコード例を示します。“`ruby:Java
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.nam
LDAPデータをJavaで受信する方法
LDAP (Lightweight Directory Access Protocol) のデータをJavaで受信するためには、Java Naming and Directory Interface (JNDI) を利用するのが一般的です。以下に、LDAPからデータを受信する基本的な手順とコード例を示します。
`手順`
**①必要なライブラリを追加する**: JNDI APIはJava SEに標準で含まれていますが、LDAPサービスプロバイダを追加する必要があります。javax.namingパッケージを使用します。**②接続設定を行う**: LDAPサーバのURL、接続するための認証情報(ユーザーDNとパスワード)を設定します。
③**LDAP接続を確立する**: InitialDirContextを使用して接続を確立します。
④**検索クエリを実行する**: SearchControlsを設定し、検索クエリを実行します。
⑤**結果を処理する**: 検索結果を受信し、必要なデータを抽出します。
`コード例`
以下に、LDAPサーバからデータを受信するための基本的なJav
アジャイルソフトウェア開発の奥義 ~依存関係の逆転~をかみ砕いてみる
# 初めに
ロバート・C・マーチン氏の「アジャイルソフトウェア開発の奥義」が大変面白かったのでまとめる。
*本書とは順番が異なります。## 依存性逆転の法則
SOLID原則のD、英語でDependency Inversion。
これは以下の2文で説明できる。– 上位のモジュールは下位のモジュールに依存してはならない。どちらのモジュールも「抽象」に依存すべきである
– 「抽象」は実装の詳細に依存してはならない。実装の詳細が「抽象」に依存すべきである### 今までの誤解。
自分はJava,Springをやってきたので、「あーDIのことか」と思っていた。
まず、これは間違い。逆転(Inversion)であって、注入(Injection)じゃない。
だが、自分はDIを利用すればDはクリアした気になっていた…
だが、一番の勘違いはDIするときのInterface設計だった。
多分多くのSpring経験者は書籍の中で「ServiceInterafceを作る」というようなサンプルコードを見てきただろう。例えば、こんなの。
“`java
//Userの実装は略。
public inter
再帰関数でフィボナッチ数列を書いてみる
### 再帰とは
関数の処理の中で同じ関数を呼び出すことで繰り返しを実現すること。
言い換えると、メソッドの中でそのメソッドを再び呼ぶこと。そうすることで、for文やwhile文のように処理が繰り返し実行されます。
では、フィボナッチ数列を使って具体的に見ていきます。### フィボナッチ数列とは
フィボナッチ数列とは、以下の式を満たす数列です。
0, 1, 2, 3, 5, 8, 13, 21, 34, 55…となっていきますね。
$$
F(n) =
\begin{cases}
n & \text{( n = 0, 1 )} \\\\
F(n-1) + F(n-2) & \text{( n > 2 )}
\end{cases}
$$### 実装
実装例と実行結果はこのようになります。
#### 実装例
“`java
class Fibo {
public static void main(String[] args) {
// メソッド呼び出し
System.out.println(fibo(5));
}static int
キャメルケースの重要性
キャメルケースができていなかったから起きたエラーがありまして
springBootのエンティティクラスを作成していてとりあえずhtmlに反映して移そうと思ったら
500aエラーが起きました、途方に暮れエラーの内容がhtmlの文法ミスだと出ていたので見に行くと
文法どころか何も間違えていませんでした
それで何が悪いのか作業に入ってからのコードを一度見直したら
emttityのクラスのgetter,setterをキャメルケースにしていなかったのでキャメルケースにしてみると。
なおりました!
何でか知りたかったのでchat-gptなりに質問してみたところキャメルケースをしていないといけないということなのでこれからはキャメルケースを意識していこうというお話でした
初めてブログ投稿したので口下手ですいません泣
Eclipse + Java + Maven の環境で Doma を動かす
## はじめに
この記事では、データベースアクセスフレームワークである [Doma](https://github.com/domaframework/doma) を利用する際の開発環境構築についてノウハウを紹介します。
簡単なサンプルアプリケーションを作りながら解説します。## 前提
### バージョンなど
開発マシンは macOS を想定しますが、Windows と異なるところはないと思います。
IDE、ツール、ライブラリ等のバージョンは以下のとおりです。
– Eclipse IDE for Java Developers 2024-03 (4.31.0)
– Java 17.0.10(Eclipse のデフォルト)
– Maven 3.9.6(Eclipse のデフォルト)
– Doma 2.60.0### Eclipse の仕組みを踏まえた戦略
Eclipse は以下のようなさまざまな設定ファイルを参照して動きます。
– .classpath : どのライブラリのどのバージョンを使うのかといったクラスパス情報
– .factorypath : アノテ
Spring Boot(Java)のおすすめするディレクトリ/ファイル構成
# 挨拶
初めまして!株式会社アールピーシーの加藤です。
2024 年度から技術組織を立ち上げ、組織活動の 1 つとして情報発信していきます。
どうぞよろしくお願いします。さて株式会社アールピーシーでは開発言語である Java を主軸としています。
今後、私からは Java を使った Web アプリケーションを通して様々な情報を紹介していく予定です。開発言語や各種ライブラリは月日と共にアップデートがされていきます。
なのでそれらの紹介はほどほどにして、大きく変わることがないアーキテクチャや実装の考え方をメインで紹介していきます。前置きが長くなりましたが、本日紹介するのはディレクトリ/ファイル構成です。
実際にアプリケーションを作る際、最初に行うのはこれらの検討ではないでしょうか。# 参考文献
NTT データグループ様 「TERASOLUNA Server Framework for Java (5.x) Development Guideline」
https://terasolunaorg.github.io/guideline/current/ja/# 読者
Java AmazonS3 AssumeRole 自分用メモ
AssumeRole
pom.xml
“`xml
software.amazon.awssdk
s3
2.25.1
software.amazon.awssdk
sts
2.25.1
“`
“`java
import software.amazon.awssdk.core.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.sts.StsClient;
import software.am
Javaで「条件演算子(三項演算子)」の動作を確認してみた
# 概要
Javaで「条件演算子(三項演算子)」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/ope/index13.html
# 実装
以下のファイルを作成しました。
“`JSample13_1.java
class JSample13_1{
public static void main(String[] args){
int score;score = 70;
System.out.print(“Score=” + score + “:”);
System.out.println(score > 70 ? “OK” : “NG”);score = 84;
System.out.print(“Score=” + score + “:”);
System.out.println(score > 70 ? “OK” : “NG”);
}
}
“`以下のコマンドを実行しました。
“`
$ javac JSample13_1.
Files.isSameFile(Path,Path)の挙動確認
# 同一ファイルのハードリンク比較
true
UT Mockito when使い方
## whenとは
スタブを実現させる際に使用します。メソッドが呼ばれた際に特定の値を返すように操作することができます。
ex)
“`java
when(mock.someMethod()).thenReturn(10);
“`
また、whenは同じメソッドが2回使用される場合や例外処理のUTで有効です。
ex)
“`java
when(mock.someMethod()).thenReturn(10).thenReturn(0);
“`“`java
when(mock.someMethod()).thenThrow(new RuntimeException());
“`## 参考
https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html#when(T)
ハードコードとは
## ハードコードとは
プログラムに直接、固定値を書き込むことを指します。直接書き込みことにより、変更が困難になることから避けるべき行為です。どのように避けることができるでしょうか
## ソフトコード
ハードコードの反対をソフトコードと言います。具体的には、固定値を事前に定数として定義しておくことを指します。ソフトコードをすることにより、修正が発生しても変更箇所を限定的に抑える事ができます。また、変更漏れを防げる可能性を高めることができます。また、初めてコードを触る方も各変数の役割を理解することが瞬時にできます。
このため、ハードコードは避けるべき行為と言われています。
## 参考
https://it-biz.online/it-skills/hard-coding/
【Jackson】ObjectMapper変換パターンいろいろ
## 環境
+ Java: 17
+ Spring Boot: 3.2.4## マッピングするentity, dto
“`java:JacksonEntity.java
package com.example.demo.entity;import java.util.Date;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;import lombok.Data;
@Data
public class JacksonEntity {private Integer id;
private String name;
@JsonIgnore
@JsonAlias({“dept_id”})
private Integer deptId;private Stri
いろいろな命名規則まとめ
# 初めに
命名規則って結構言語ごとによって決まりが違うので、久しぶりに使う言語とか初めて使う言語とかとにかく普段使ってない言語だと命名規則がわからなくなるんですよね。なので、まとめちゃいました。
# 各プログラミング言語の一般的な命名規則
プログラミング言語ごとに異なる命名規則を守ることで、コードの可読性と一貫性を高めることができます。
## Python
– **変数名**:`my_variable`
– **説明**:Pythonではスネークケースが推奨され、単語はアンダースコアで区切る
– **関数名**:`def my_function():`
– **説明**:関数名もスネークケースで記述され、可読性が高まる
– **クラス名**:`class MyClass:`
– **説明**:クラス名はパスカルケースで、各単語の先頭を大文字にする
– **定数名**:`MY_CONSTANT = 10`
– **説明**:定数はすべて大文字で、アンダースコアで単語を区切る
– **ファイル名**:`my_script.py`
– **説明**:ファイル名
Javaで「論理演算子」の動作を確認してみた
# 概要
Javaで「論理演算子」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/ope/index12.html
# 実装
以下のファイルを作成しました。
“`
class JSample12_1{
public static void main(String[] args){
int a = 7;
int b = 4;System.out.println(a < 0 && b > 5);
System.out.println(a < 5 && b > 3);
System.out.println(a < 9 && b > 7);
System.out.println(a < 9 && b > 3);System.out.println(a < 0 || b > 5);
System.out.println(a < 5 || b > 3);
System.out.println(a < 9 || b > 7);
【インクリメント演算子】hoge++ と ++hoge の違いとは
# 目次
この記事は2分ほどで読めます。
[1. 問題](#1-問題)
[2. 解説](#2-解説)
[3. 結局どちらを使えば良いか](#3-結局どちらを使えば良いか)# 1. 問題
“`
// JavaScriptの場合
let hoge = 10;
console.log(++hoge);
console.log(hoge++);
“`
“`
// Javaの場合
int hoge = 10;
System.out.println(++hoge);
System.out.println(hoge++);
“`Q: 上記コードを実行したときにどのように表示されるでしょうか?(補足:JavaScriptとJavaの実行結果は同じになります)
考え中・・・
A: 正解は以下のとおりとなります
“`
11
11
“`
# 2. 解説
– hoge++と++hogeの挙動の違いを一言で表すと「変動`前`の変数を返すか変動`後`の違いを表すか」です。
– ++hogeのように++を変数前につけた場合は