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

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

JavaでDB接続時ORマッパーを使用してみた

# はじめに
未経験からエンジニアになって、結構苦戦した場所なので記録しておきます。
公式のやり方で結局正解だったのだけど、未経験からしたら訳わからんのですよ。

なので、自分なりの解釈と同じ初心者にわかりやすいように書いていきます。

色々例えて書くため明確には違う表現もあるかと思いますが、とりあえず何となく理解して動くものを作成していきますのでお願いします。

一応参考までに、[iciql](http://iciql.com/)こちらが公式サイトです。
# 開発環境
Windows 10 Pro
eclipse
MySQL 8.0.31
# ORマッパーとは
ORM(オブジェクト リレーショナル マッピング)のこと

意味として、RDB(リレーショナルデータベース)をオブジェクト指向型のやり方で扱えるようにするための手法のことです。

具体的には、RDB(リレーショナルデータベース)に対する操作がひとまとめになったライブラリを使用し、これを使うことによってSQLの生成を背後で行ってくれるみたいです。

要は、これを導入することで自分のデータベースをクラスとして扱ってその処理を裏側で

元記事を表示

C言語系(JAVA C# Ts Go) 日本語系(Mind DNCL)各言語構文を比較して自作言語Re:Mindの構文を定める(変数宣言・実行文・関数宣言)

# はじめに
JAVA C# Ts GoといったC言語を由来とする新旧の言語とMind DNCLなどの日本語プログラミング言語の制御構文を比較して自作言語Re:Mindの構文を定めます。今回は変数宣言・実行文・関数宣言。

自作言語Re:Mindの詳しい利用シーンのイメージは[こちらへ](https://qiita.com/mylifewithviolin/items/9d58db8a101807c19bde)。すみません、企画段階です。日本語プログラミング言語です。

## この記事内容の作業目的
今回は各言語の変数宣言・実行文・関数宣言の構文を比較検討します。

## この記事内容の保証
※この記事には実装的な情報が含まれます。各言語で書かれた引用ソースの妥当性は保証されません。また、自作言語は開発中(というよりまだ企画段階)のため、本記事に開示された仕様は予告なく変更される場合があります。

# JAVA C# Ts Goの新旧C言語系の構文イメージ

なるべく長くならずイメージが比較しやすいよう、変数の型は整数、文字列、真偽の3つとします。関数は値を返すものと返さないもの2つと

元記事を表示

【Java基礎】if構文-3

[問題]  (参照:http://www.cc.kyoto-su.ac.jp/~mmina/bp1/hundredKnocksBasic.html)
整数値を入力させ、値が正であればpositiveと表示するプログラムを作成しなさい。ただし0は正に含まないものとする。

# コード
“`Java
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
if(t > 0){
System.out.println(“positive”);
}
}
}

“`

↓「8」と入力

# 結果
“`
positive
“`

元記事を表示

Java C# JavaScript のクラスの違いを比較する

# Java C# JavaScript のクラスの違いを比較する

## はじめに

最近 Java を軽く学習したり、JavaScript の開発業務をやったりしてクラスにいろいろ触れてきたので、アウトプットを兼ねて 3 種類の言語のクラスについて比較していきます。クラスとは何か、オブジェクト指向とは何かという概念的な話は今回は触れません。

## 念のためクラスとは
とはいえ、軽くは触れておきます。
Wikipedia を参考に簡単にいうと「クラスとは、オブジェクト指向に登場する概念のこと。オブジェクトを生成するための設計図あるいはひな形に相当するもの」です。

## クラスの作り方

まずはクラスの作り方から比較していきます。

### コード

C#

“`C#
class TestClass
{
//クラスの中身
}
“`

Java

“`java
class TestClass
{
// クラスの中身
}
“`

JavaScript

“`javascript
class TestClass {
// クラスの中身
}

// クラス式
let Te

元記事を表示

Spring MVC WEBアプリを ACA (Azure Container Apps) 環境で起動する

# Spring MVC WEBアプリを ACA (Azure Container Apps) 環境で起動する

## 目的

[Spring MVC WEBアプリ](https://qiita.com/hiroxpepe/items/8da878169d6bf36a001f)を [Azure Container Apps](https://learn.microsoft.com/ja-jp/azure/container-apps/overview) 環境で起動して理解を深めます。

## 実現すること

Microsoft Azure Container Apps (ACA) に Spring MVC WEBアプリの Docker イメージをデプロイします。

## 開発環境

+ Windows 11 Home 22H2 を使用しています。
+ [WSL](https://learn.microsoft.com/ja-jp/windows/wsl/about) の Ubuntu を操作していきますので macOS の方も参考にして頂けます。

元記事を表示

Leetcode 989. Add to Array-Form of Integer

https://leetcode.com/problems/add-to-array-form-of-integer/description/

## アプローチ
### Brute-force

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

class Solution {
// アプローチが悪い
public List addToArrayForm1(int[] num, int k) {

StringBuilder sb = new StringBuilder();
for (int n : num) {
sb.append(n);
}

System.out.println(sb);
BigDecimal tempBigDecimal = new BigDecimal(sb.toString());

元記事を表示

Spring MVC WEBアプリを Azure App Service 環境で起動する (Docker イメージ)

# Spring MVC WEBアプリを Azure App Service 環境で起動する (Docker イメージ)

## 目的

[Spring MVC WEBアプリ](https://qiita.com/hiroxpepe/items/8da878169d6bf36a001f)を [Azure App Service](https://learn.microsoft.com/ja-jp/azure/app-service/overview) 環境で起動して理解を深めます。

## 実現すること

Microsoft Azure App Service に Spring MVC WEBアプリの Docker イメージをデプロイします。

## 開発環境

+ Windows 11 Home 22H2 を使用しています。
+ [WSL](https://learn.microsoft.com/ja-jp/windows/wsl/about) の Ubuntu を操作していきますので macOS の方も参考にして頂けます。

WSL (Micr

元記事を表示

locale

言語、国を定義している情報がLocale class

setVariantで使用可能なvariantはここで参照できる
https://r12a.github.io/app-subtags/

“`java
public class Outer {
public static void main(String args[]) {
printLocale(Locale.getDefault());
printLocale(Locale.JAPAN);
printLocale(new Locale(“ja”,”JP”,”JP”));
printLocale(new Locale(“ja”,”JP”,”JP1″)); //variant err
Locale.Builder bl = new Locale.Builder();
bl = bl.setLanguage(“jp”);
bl = bl.setRegion(“JP”);
bl = bl.

元記事を表示

javaの可変長引数に関する注意点[備忘録]

初投稿です。

Javaのプログラミング資格で学習中で気づいたことに、備忘録として残します。
コード解読してから、java APIで該当のメソッドを調べたときに、メソッドがなかなか見つからない、そんな時、以下の場合があるかもしれません。

今後も追加情報があれば、更新致します。

メソッドの定義側の引数
1.可変長引数のみ
2.固定長引数のみ
3.固定長引数と可変長引数
の3パターンでオーバーロードされているtest1メソッドに対して、
呼出側で
1.引数なし
で呼び出した場合の挙動。

続いて、
メソッドの定義側の引数
3.固定長引数と可変長引数
呼出側で
1.固定長引数のみ
で呼び出した場合の挙動。

についてコードで整理しました。

“`A.java
public class A {
public static void main(String[] args) {
A a = new A();
System.out.println(a.test1());//test1 Object… args
System.out.println(a.test2

元記事を表示

【Mac】docker で Spring Boot + MySQL の環境を構築する

# 概要
docker を使ったSpring Boot + MySQL の環境構築方法をまとめます。

# 前提
事前にdockerとgradleをインストール済みとします。

# サンプルコード
https://github.com/s-kii3/TaskList_v2

# ディレクトリ構成
“`terminal
$ tree -L 2
.
├── Dockerfile
├── README.md
├── app # 作成したプロジェクト
│ ├── HELP.md
│ ├── bin
│ ├── build.gradle
│ ├── docker-compose.yml
│ ├── gradle
│ ├── gradlew
│ ├── gradlew.bat
│ ├── settings.gradle
│ └── src
├── docker-compose.yml
└── mysql # mysqlの設定ファイル
├── init
├── my.conf
└── mysql.cnf

9 directories, 1

元記事を表示

IRCクライアントJavaライブラリKittehを使ってみる

JavaのIRCクライアントライブラリの[Kitteh](https://kitteh.org/irc-client-library/)を使ってみます。

Kitteh IRC Client Libraryを略してKICLとも呼ばれるようです。

# 環境

OS:Windows10
Java:openjdk 17.0.6 2023-01-17 LTS
Maven:3.8.7

# 設定

## Mavenのプロジェクトにインポート

“`xml:pom.xml

org.kitteh.irc
client-lib
8.0.0

“`

## IRCサーバのSSL証明書をjavaキーストアに登録する[^1](SSL通信をする場合)

[^1]:https://kitteh-irc-client-library.readthedocs.io/en/latest

元記事を表示

Leetcode 67. Add Binary

https://leetcode.com/problems/add-binary/description/

“`java
class Solution {
public String addBinary(String a, String b) {
StringBuilder sb = new StringBuilder();

int i = a.length() – 1;
int j = b.length() – 1;
int carry = 0;
while (i >= 0 || j >= 0) {
int sum = carry;
if (i >= 0) {
sum += a.charAt(i) – ‘0’;
i–;
}
if (j >= 0) {
sum += b.charAt(j) – ‘0’;

元記事を表示

Spring Boot WEBサービスを ASA (Azure Spring Apps) 環境で起動する (jar ファイル形式)

# Spring Boot WEBサービスを ASA (Azure Spring Apps) 環境で起動する (jar ファイル形式)

## 目的
[Spring Boot WEBサービス](https://qiita.com/hiroxpepe/items/4a0f5e077155ce41e7ac)を [Azure Spring Apps](https://learn.microsoft.com/ja-jp/azure/spring-apps/overview) 環境で起動して理解を深めます。

## 実現すること

Microsoft Azure Spring Apps に Spring Boot の jar ファイル形式のWEBアプリをデプロイ・起動します。

## 開発環境

+ Windows 11 Home 22H2 を使用しています。
+ [WSL](https://learn.microsoft.com/ja-jp/windows/wsl/about) の Ubuntu を操作していきますので macOS の方も参考にして頂けます。

元記事を表示

備忘録(eclipseでMySQL連携の方法)

EclipseでJavaとMySQLの連携にとても苦戦したので、その戦いの記録

初心者なので必要のないデータやチンプンカンプンな表記があるかもですが、ご指摘いただけると嬉しいです。

バージョン
OS:Windows 10 Home
Eclipse:2021-06 (4.20.0)
MySQL:Ver 8.0.32 for Win64 on x86_64 (MySQL Community Server – GPL)
JDBC:mysql-connector-j-8.0.31.jar
(2023/2/14現在)

今回の挑戦
Javaでデータベース連携をしたシステム開発に挑戦をしたい

どこまでできたか
eclipseでMySQLへの接続まで

参考にしたサイト
<MySQLへのダウンロード時に参照>
https://johobase.com/mysql-download-install-initial-setting/

<MySQLの立ち上げ方について参照>
https://prog-8.com/docs/mysql-env-win
恐らくバージョンの違いでこの記事だけでは上手く

元記事を表示

[Java] デザインパターン – Adapter

## 目的
以下の書籍を読んで、デザインパターンについて学習したため、その備忘録として記事を作成する。

* Java言語で学ぶデザインパターン入門 第3版 (著: 結城浩)

## Adapterパターンとは
* 既に提供されているものと必要なものの間のずれを埋める変換器の役割を果たす
* (例)直流xxボルトを交流xxボルトに変換するACアダプタ
* 既存のクラスには全く手を加えずに、目的のインターフェース(API)に合わせようとするもの

2種類のAdapterパターンがある。
| 分類 | 具体的な使用方法 |
|:-:|:-:|
| クラス | 継承 |
| インスタンス | 移譲 |

移譲については以下の記事が詳しい。

https://qiita.com/jesus_isao/items/4b6b7846ccf5eb46b1bc

### なぜこのデザインパターンを使うのか
* クラスを新規作成するよりも、テスト済みの既存のクラスを再利用した方がバグ発生時の調査範囲を特定しやすいため。
* 既存のクラスはテスト済みなので、バグが発生した時は、再利用先のクラス(Ada

元記事を表示

assert method

assertを、入力値チェック、出力値チェック、コンストラクタチェックなどに使う
assertはデフォルト無効なため、java -eaオプションで実行すること
“`java
class Item{
private String name;
private int price;

public Item(String name, int price) {
this.name = name;
this.price = price;
assert price > 100 : “constructor price over error”;
}

public int getPrice() {
return price;
}

public void setPrice(int price) {
assert price > 100 : “set price over error”;
this.price = price;
}

元記事を表示

try with resource, AutoCloseable

class implements AutoCloseableがtry with resourceできる
BufferedReadearなど。
try blockの最後でclose()が呼ばれる
class implements AutoCloseableがnullの場合はNullpointerは発生しない。closeもしない
記述した順番と逆順でclose
“`java
class Sample implements Closeable {
String msg;
Sample(String msg) {
this.msg = msg;
}
@Override
public void close() {
System.out.println(this.msg + ” close”);
}
void method() {
System.out.println(this.msg + ” method”);
}
}
public class Outer {
public

元記事を表示

JUnit 5 で全 @BeforeAll の前に処理を行う

全テストの実行前に static 変数のフラグをセットしたかったため、そうしたことのできる方法を探したところ、JUnit 5 と IntelliJ や Maven Surefire Plugin の組み合わせで実現可能だとわかったためご紹介します。

JUnit 5 User Guide の [6.4.5. Registering a LauncherSessionListener](https://junit.org/junit5/docs/current/user-guide/#launcher-api-launcher-session-listeners-custom) を読めばわかることではあるのですが、もっと簡単な例と実行結果が載っている日本語の記事があるといいんじゃないかと思って執筆しました。

## 前提

– Gradle 4.6 以上
– Maven Surefire/Failsafe 3.0.0-M6 以上
– IntelliJ IDEA 2017.3 以上

Maven では Surefire/Failsafe Plugin のプレリリース版を使っている点にご注

元記事を表示

存在しない彼女へのアクセスによって起きるぬるぽをKotlinのNull Safetyの力で防ぐ

# 今日はなんの日?
今日はバレンタインらしいですが、特に変わったことがないのでいつも通りの記事を書きたいと思います。
# とあるコード
“`java
import java.util.Calendar;

class Chocolate {}

class Kanojo {
private Chocolate choco = new Chocolate();

Chocolate getChoco() {
return choco;
}
}

class Naotiki {
private Kanojo kanojo;
Kanojo getKanojo() {
return kanojo;
}

void eat(Chocolate choco){
System.out.println(“おいし~”);
}

public static void main(String[] args) {
//私のインスタンスを生成
Naotiki

元記事を表示

*作成中* 継承の多様性について

“`Parent.java
String val = “A”;

void print() {
System.out.println(val);
}

void difference() {
System.out.println(“super1”);
}

“`

“`Child.java
String val = “B”;

void print() {
System.out.println(val);
}
void print2() {
System.out.println(“sub1”);
}

“`

“`Main.java

package Sample;

public class Main {
public static void main(String[] args) {
Parent a = new Parent();
Parent b = new Child();

元記事を表示

OTHERカテゴリの最新記事