JAVA関連のことを調べてみた

JAVA関連のことを調べてみた

Webアプリを作成して公開したい #2

続きです。

Railway.appを使用してデプロイを試みます。

3.デプロイする(続き)

アプリのアカウント作成 → Githubの連携と
基本的には以下の通りに進めました。
https://zenn.dev/gibjapan/articles/881d1e3a1241f1

前回も記載した通り、DB接続は後回しです。
なので環境変数は何も追加していません。

が、Githubを連携して「Deploy Now」しても
ビルドが開始されず アドレスを叩いてもNotFoundのままです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3901612/93fb0bea-1081-33e3-162d-9f2ae119cda4.png)

何が原因かわかりません。
今回はデモアプリを使用していて
インデックスページを用意していないのでルートのアドレスにアクセスしてもエラーになるのは把握済み、なのでアクセスしたのは以下になります。

>アプリ名.up.railway.app/add?a=

元記事を表示

Webアプリを作成して公開したい #1

初めての投稿になります。
記事は主に自己学習の備忘のために投稿していきます。


◆目的
 WEBアプリを作成して公開したい。

◆環境
・Tomcat9
・Java17(Sprong Boot)
・Maven
・SQL(どれを使うかは未定)
・Eclipse

◆考えていること
・ローカルだけでなくWEB公開したい
・仕事の業務に活用したいためセキュリティについても考慮したい
・ローカルと本番で環境毎にDBを変えて管理したい
・一旦は極力お金をかけずに運用したい(=無料を目指したい)


身内から「こんなんつくれない?」と言われました。
仕事で4年ほど様々な機能の保守や開発を行っていきましたが
すでに環境が出来上がっている所に改修や追加開発を行ってきたため
インフラや基盤の知識はあまりありません。
スキルアップも兼ねてひとまずはミニマムでトライしたいと思います。
ミニマムのため、一旦は諸々無料の機能を活用していく方向で進めます。

おおまかな流れは以下なのかなと思っています。

1.ローカルでアプリケーションを作成する
2.Githubに開発したプログラ

元記事を表示

Javaオブジェクトと継承

今回はjavaのオブジェクトと継承について記事にしたいと思います。

1. オブジェクトとは?
オブジェクトとは、**データ(プロパティ)と、そのデータに対する動作(メソッド)**を持つものです。例えば、現実世界の「車」をプログラム内で表現すると、オブジェクトに「色」「メーカー」「速度」などのデータ(プロパティ)を持たせ、さらに「加速する」「ブレーキをかける」などの動作(メソッド)を持たせることができます。

オブジェクトはクラスという設計図を基にして作られます。クラスを定義し、そのクラスからインスタンス(実体)としてオブジェクトを作成します。

オブジェクトの例(クラスとインスタンス):
“`java
class Car {
// プロパティ(フィールド)
String color;
String brand;
int speed;

// メソッド(動作)
void accelerate() {
speed += 10;
System.out.println(“Speed is now: ” + sp

元記事を表示

JavaでAWSのS3ストレージからファイルをダウンロードする方法

こんにちは、東です。
前回はJavaを利用してS3ストレージからファイルをアップロードする方法を
まとめましたので、今回はダウンロードについてです。

前回:[JavaでAWSのS3ストレージからファイルをアップロードする方法](https://qiita.com/pesysyon/items/25c5580fec3df92ee38f)

# 必要なことは?
以下のものが必要になります。
・__「ユーザーID」__ →IAMユーザーのユーザーID
・__「シークレットアクセスキー」__ →IAMユーザーのシークレットアクセスキー
・__「リージョン名」__ →S3コンテナが配置されている地域のリージョン名
・__「ファイルパス」__ →アップロードされたファイルの格納パス文字列
となります。

流れとしては
1.認証情報を用意

2.S3へアクセスするクライアントを作成。

3.ファイルをダウンロードする。

4.ブラウザへ書き出す。

という流れになります。
では、詳しく見ていきましょう。

# 手順
### 1.認証情報を用意
前回同様、AWSのS3ストレージへアクセスするた

元記事を表示

【Java Silver11】勉強方法

## ⓪はじめに
(対象:Java Silverの受験を悩んでいる方、受験が決まっている方)
 

先日、Java Silver11に合格いたしました!

今回は、試験内容に関わる勉強方法や所感などを残します。他の資格試験でも参考にできる部分があるかもしれません。

(前回は受験体験記を書きました。)

https://qiita.com/moncoeur_00/items/5a20b8f40a10302f5c67

 
今回、受験するにあたり、黒本([徹底攻略Java SE 11 Silver問題集[1Z0-815]対応](https://book.impress.co.jp/books/1118101186#:~:text=%E3%82%AA%E3%83%A9%E3%82%AF%E3%83%AB%E7%A4%BE%E3%81%AE%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93))を用いて学習しました。

## ①勉強期間
(私は今年の4月に未経験で入社しました。)
A:5月に黒本を購入し、特に受験日を決めることもせず気が向いたときに取り

元記事を表示

springのWebClientでXMLレスポンスを受信

# サンプルコード

“`gradle:build.gradle
plugins {
id ‘java’
id ‘org.springframework.boot’ version ‘3.3.4’
id ‘io.spring.dependency-management’ version ‘1.1.6’
}

group = ‘com.example’
version = ‘0.0.1-SNAPSHOT’

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

dependencies {
implementation ‘org.springframework.boot:spring-boot-starter-web’
implementation ‘org.springfr

元記事を表示

[Spring]thymeleafでプロパティを受け取る

## はじめに
controllerの引数@PathVariableでURLから受けとったプロパティを、
thymeleafで表示させる際の挙動について備忘録
※間違い等あればご指摘いただけますと幸いです。

## 環境
・JavaSE 17
・springframework 3.3.1
・PostgreSQL 12.17
・MacOS 13.1

## 本題
idとnameからなる「カテゴリー」を登録・更新するformを作成する。
今回は更新の場合について注目。
カテゴリーの一覧画面から編集ボタンを押し、更新formを表示する流れを想定。
更新formには初期値として更新対象のid(readonly)とnameをinputエリアに表示させる。
※controllerとhtml部分のみ抜粋。

**CategoryController.java**
“`
@Controller
@RequestMapping(“/category”)
public class CategoryController {

@Autowired
CategoryService categoryS

元記事を表示

springbootを使った一般ユーザーと管理者ユーザーのDBの作成

今回はデータベースの作成で一般ユーザーと管理者ユーザーの作成を記事にしたいと思います。

ステップ 1: ユーザーテーブルの作成
まず、ユーザーテーブルを作成します。このテーブルには、一般ユーザーと管理者ユーザーを区別するために「role」カラムを追加します。

テーブルの構造(例: MySQL)
“`sql
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
role ENUM(‘user’, ‘admin’) DEFAULT ‘user’,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
“`
id: ユーザーの一意のIDです。
username: ユーザーの名前です。
email: メールアドレス(重複不可)。
passwo

元記事を表示

Windows11,Eclipse,Tomcat10 で古いJavaservletを動かす環境設定

# 業務忘備録

## インストール
eclipse C:\pleiades
tomcat10 C:\tomcat10
Java 21 C:\Program Files\Eclipse Adoptium\jdk-21.0.3.9-hotspot
Java 11 C:\Program Files\Eclipse Adoptium\jdk-11.0.23.9-hotspot

## 開発環境(本番環境)
Java 11
Tomcat 10

## Eclipse 設定
3. 新規立ち上げ
3. 新規フォルダ作成 C:\pleiades\workspace_
3. C:\pleiades\workspace_ 選択
3. パッケージ ⇒「動的 Web プロジェクトを作成します」選択
3. 任意のプロジェクト名入力「n00a」
3. ターゲット・ランタイム、新規ランタイム、Apache、Apache Tomcat v10.1、新規ローカル・サーバーの作成(選択)、次へ、Tomcat インストール・ディレクトリー⇒参照、C:\tomcat10(選択)、JRE⇒インストール済みのJRE⇒追加⇒標準

元記事を表示

JacksonのJsonNodeの使い方

# はじめに
たまに使おうとすると忘れるのでメモ
インストール方法や基本的な説明はしないのでそれが目的の人は他をあたって欲しい。

# 静的なクラス定義を使わない
Jackson を使う際、静的なクラス定義を使う場合と使わない場合で使い方が大きく異なる。
JSON表記に慣れると、Java のクラスなんていちいち書いていられない。
ここでは、**使わない方法だけ**を説明する。
アノテーション(@)も使わない。

# サンプルプログラム

要点は、**ObjectMapper** と **JsonNode** を使う。
例示したほうが、理解が早い

“`java
import java.util.Iterator;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fas

元記事を表示

JPAの Persistence Cascade

### JPAにおける永続性の伝播(Cascade)

JPAでは、親エンティティ(`Order`)と子エンティティ(`OrderProduct`)、および関連するエンティティ(`Product`)の関係において、**永続性の伝播(Cascade)** は、親エンティティと一緒に子エンティティが自動的に保存、更新、削除されるようにするために使用されます。もし永続性の伝播が設定されていないと、関連するエンティティを手動でそれぞれ保存する必要があり、問題が発生することがあります。

### 永続性の伝播(Cascade)に関する主な原則

1. **Cascade設定**:親エンティティと子エンティティ間の関係で永続性の伝播(Cascade)を設定し、親エンティティが保存される際に子エンティティも自動的に保存されるようにします。`CascadeType.PERSIST` や `CascadeType.ALL` を使用することで、親エンティティが保存される際に子エンティティも自動的に保存されます。

2. **リレーションの設定**:適切に一方向または双方向の関連関係を設定し、関連するエンテ

元記事を表示

Java基礎文法Part9

今回はスコープについて記事にしたいと思います。

スコープとは、プログラミングにおいて、変数やオブジェクトがどの範囲で有効(アクセス可能)かを示す概念のことです。スコープを理解することで、プログラムの中でどこで変数が使えるのか、またどこで使えないのかがわかり、効率的にコードを書くことができます。特にWeb開発やJSPのようなサーバーサイド開発では、スコープの管理が重要です。

1. スコープの基本的な考え方
スコープは、どこで変数やオブジェクトが生きているか(有効か)を指します。スコープの範囲外では、その変数やオブジェクトは使えなくなります。これにより、プログラムの中で変数の寿命やアクセスの範囲を制御できます。

2. JSPにおけるスコープの種類
JSP(Java Server Pages)やサーブレットでは、スコープの概念が非常に重要で、データをどの範囲で使うかを決める4つのスコープが存在します。それぞれ、データをどれくらいの期間、どこで使用できるかを決定します。

3. JSPのスコープの種類
ページスコープ(Page Scope)

有効範囲: JSPページ内だけで有効です。

元記事を表示

Java基礎文法Part8

今回は暗黙オブジェクトについて記事にしたいと思います。

暗黙オブジェクトとは?
**暗黙オブジェクト(Implicit Objects)**は、JSPで自動的に生成され、プログラマが特に宣言をしなくても使えるオブジェクトです。これらは、JSPページやサーブレットでよく使われるデータのやり取りや情報の処理を簡単に行うためのものです。

なぜ「暗黙」なのか?
「暗黙」というのは、「開発者が特別に用意しなくても、最初から用意されている」という意味です。通常、Javaではオブジェクトを使うときにnewキーワードでインスタンスを作成しますが、暗黙オブジェクトはJSPが自動的に作成してくれるので、自分でインスタンスを作らなくても使うことができます。

代表的な暗黙オブジェクトの一覧と使い方
request

説明: クライアント(ユーザーのブラウザなど)からサーバーに送信されたリクエスト情報を扱います。フォームデータやURLのパラメータを取得するために使います。
使い方:

“`jsp
String name = request.getParameter(“name”); // フォームの”

元記事を表示

Java基礎文法Part7

今回は画面遷移について記事にしたいと思います。

リンクによる画面遷移
ウェブサイトにはよくリンクがありますよね。リンクをクリックすると、別のページに移動することができます。このようにして、あるページから別のページに簡単に移動することができます。

例:
“`html
このリンクをクリックして「About」のページに行く
“`
タグ: これはリンクを作るためのタグです。
href=”about.html”: ここに移動したいページのURLを指定します。この例では、「about.html」というページに移動します。

フォームによる画面遷移
リンクだけでなく、フォームを使って情報を送信し、それに応じて画面を切り替えることもできます。例えば、ログイン画面では、名前やパスワードを入力して送信ボタンを押すと、ログインの結果に応じて別の画面に移動することができます。

例:
“`html

元記事を表示

Java基礎文法Part6

本日はif文につい記事にしたいと思います。

基本構文
“`java
if (条件式){
  処理
}
“`
条件式には結果boolean型となるものを書きます。
if文の条件式になると{中カッコ}の処理が実行され,
逆に条件式がfalseになると、{中カッコ}の処理は行われず、if文から抜けます。
条件式には比較演算子がよく使われます。

比較演算子は、値を比べて「大きいか」「小さいか」「等しいか」などを判断するための記号です。if文の条件に使われることが多いです。よく使う比較演算子は以下の通りです:
“`java
> : 大きい(例:a > b → aがbより大きい)
< : 小さい(例:a < b → aがbより小さい) == : 等しい(例:a == b → aがbと等しい) != : 等しくない(例:a != b → aがbと等しくない) ``` if ~ else文 if ~ else文は、「もし○○ならば△△をする。そうでなければ□□をする」という形で、2つの選択肢を与える場合に使います。たとえば、晴れなら外で遊ぶ、雨なら家でゲームをする、という感じです

元記事を表示

【Java Silver】Oracle Java Silver SE11 試験

## 使用した書籍やサイト
・progate(有料会員:3か月)
・せかチャン(YouTube動画)
・Javaの黒本
・黒本著者が教えるやさしくない!?java(youtube動画)

## 受験までの期間
・6か月(1日:約1~2時間勉強のペース)

## 試験までの流れ
1.プログラミングに興味がわき、”progate”の有料会員でレッスン通りに進めていく。
(何週したか覚えてませんが、ヒントや解説を見なくても、コーディングできるレベルまでやり込む。)

2.1と同時並行で”せかチャン”動画を参考にコーディングしている内容の理解を深める。

3.試験意欲がわいたので、”Javaの黒本”を購入し、問題を一通り解いてみる。(この時は、全然できないと思う。)

4.黒本の解説を読みながら、それでも理解できないことが必ず起きるので、”黒本著者が教えるやさしくない!?java”動画を参考にして、黒本内の疑問を払拭する。

5.黒本を繰り返し解いてみて、9割程度理解できれば、試験を予約

6.試験

## 受験してみての感想
 私自身、インフラの経験しかなかったため、プログラミングでどこまで

元記事を表示

Web APIとは?REST APIの基礎と実装例

## ■ はじめに
Web APIは、異なるシステム間でデータをやり取りするためのインターフェースです。
特にREST API(Representational State Transfer API)は、拡張性の高さから幅広く利用されています。
この記事ではAPIのとはなにかやREST APIの仕組み、実際に簡単なAPIの作成と利用方法を解説します。

## ■ 目次
1. [APIとは?](#1-apiとは)
2. [REST APIの基本](#2-rest-apiの基本)
3. [REST APIのHTTPメソッド](#3-rest-apiのhttpメソッド)
4. [Spring Bootを使用したREST APIの作成例](#4-spring-bootを使用したrest-apiの作成例)
5. [まとめ](#5-まとめ)

# 1. APIとは

#### APIの定義
APIは **Application Programming Interface** の略で、ソフトウェア同士がやり取りをするためのインターフェースを意味します。
このAPIを利用することで、異

元記事を表示

例外処理

今回はJavaの例外処理について記事にしたいと思います。

例外とは、プログラムが予想外の問題に遭遇したときに発生するエラーのことです。たとえば、次のような状況が考えられます:

数字を入力する場面で、文字を入力してしまった。
ファイルを読み込もうとしたけど、そのファイルが存在しなかった。
0で割ろうとした(これは数学的に禁止されています)。
こうした状況が起きたとき、プログラムは通常止まってしまいますが、例外処理を使うことで、エラーに対処しながらプログラムを続けることができます。

3. 例外処理(try ~ catch)
Javaでは、エラーが発生する可能性がある部分に対して、tryブロックと**catchブロック**を使って、エラーが起きたときにどう対処するかを指定します。

tryブロックには、エラーが起こるかもしれない処理を書きます。
catchブロックには、エラーが起きたときにどうするかを書きます。
“`Java
コードをコピーする
try {
int result = 10 / 0; // ここでエラーが発生
} catch (ArithmeticExcept

元記事を表示

Java基礎文法Part5

今回はJavaのfor文について記事にまとめました。

構文
“`Java
for(初期化;条件式;後処理){
 繰り返す処理

 }
“`
. 反復処理の制御構文
反復処理(はんぷくしょり)とは、同じことを何度も繰り返して実行することです。たとえば、10回ジャンプするとか、毎朝同じ時間に起きるのも反復処理です。プログラミングでは、同じ動作を何度も繰り返すために、ループと呼ばれる仕組みを使います。

制御構文は、プログラムがどう動くかを決めるルールです。例えば、for文やwhile文というものを使って、何度も繰り返すことができます。

例:
“`Java
for (int i = 0; i < 5; i++) { System.out.println("こんにちは"); } ``` このプログラムは、「こんにちは」を5回表示します。 2. インクリメント インクリメントは、数を1ずつ増やすことです。たとえば、「1, 2, 3, 4」と数を増やすときに使います。 例: ```Java int x = 0; x++; // xは1になる x++; // xは2になる

元記事を表示

Java基礎文法Part4

今回はメソッドについて記事にしたいと思います。

メソッドは、プログラミングの中でよく使われる言葉です。簡単に言うと、**メソッドは「動作」や「行動」**を表すものです。現実世界で例えると、「何かをするための命令」だと思ってください。

メソッドって何?
例えば、人間で考えてみましょう。**人は「歩く」「話す」「食べる」といった色々な行動をしますよね。これをプログラミングの世界で表現すると、「歩く」「話す」「食べる」**という動作が「メソッド」にあたります。

メソッドは、「何をするか?」という行動の部分をプログラムに書いておくことで、必要なときにその行動を呼び出して実行することができます。

メソッドの例
例えば、犬が「吠える」という動作をするためのメソッドを考えてみましょう。

“`Java
class Dog {
// 犬が吠えるメソッド
void bark() {
System.out.println(“ワンワン!”);
}
}
“`
bark()というメソッドを使って、犬が「ワンワン!」と吠える動作を表しています。
System.o

元記事を表示

OTHERカテゴリの最新記事