- 1. MybatisのSQLで不等号を記載する方法
- 2. [Java]年齢を求める
- 3. Webアプリを作成して公開したい #3
- 4. 【O’Reilly】実践 Selenium WebDriverを読んで
- 5. Spring Securityについて理解する①(DelegatingFilterProxy、FilterChainProxy、SecurityFilterChain)
- 6. MySQL_BETWEEN演算子で特定の範囲のデータを取得する
- 7. Oracle Java Bronzeオンライン試験を受けました(2024/10/5)
- 8. Splash画像のみ変えたい時(Android)
- 9. Javaの実行の流れについて
- 10. 【備忘録】String.format の使い方
- 11. 資格学習やハンズオンを経て感じたこと、学んだこと
- 12. Javaの日付型 java.sql.Timestampについて
- 13. Webアプリを作成して公開したい #2
- 14. Webアプリを作成して公開したい #1
- 15. Javaオブジェクトと継承
- 16. JavaでAWSのS3ストレージからファイルをダウンロードする方法
- 17. 【Java Silver11】勉強方法
- 18. springのWebClientでXMLレスポンスを受信
- 19. [Spring]thymeleafでプロパティを受け取る
- 20. springbootを使った一般ユーザーと管理者ユーザーのDBの作成
MybatisのSQLで不等号を記載する方法
Mybatisを用いた開発の場合、基本的にMapperXMLにSQLを記載することになる。
しかし、XMLファイルでは、不等号を表すのに利用する“<``や``>“は特別な意味を持ち、タグの開始や終了として解釈されてしまう。## 改善策1.使用箇所をCDATAセクションで囲む
CDATAとは、「Character Data(文字データ)」の略で、CDATAセクション内の内容は通常のXMLパースルールを無視して、そのまま文字列として扱われる。例:価格が300円未満の商品を抽出する
“`xml:
“`
## 改善策2.SQL全体をCDATAセクションで囲む
“`xml:
Webアプリを作成して公開したい #3
続きです。
ローカルで変更した内容をGithubに上げて、変更をデプロイしてみました。
その前に、以下を修正しました。
>Spring Initializrを使用しているので
設置したディレクトリ階層が一段下になっています。
これが必要かどうかわかりませんがデプロイしたいので
Root Directoryにルートを一段下に指定して保存しました。ダウンロードした圧縮ファイルをそのままworkspaceに展開して利用していたので
階層が変になっていました。
これを作成しなおして不要な階層を削除しました。プロジェクトを作成しなおす際にJavaを21に設定してしまったのですが
Java21はサポート外だったのか、ローカルでは問題がなかったものの
Railway.appでビルドを行う際に以下のエラーが発生しました。:::note alert
[エラー] プロジェクト ywm で目標 org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile (default-compile) を実行できませんでした: コンパイル中に
【O’Reilly】実践 Selenium WebDriverを読んで
# 始めに
前の記事と同じく個人的な都合で自動テストに詳しくならないといけないので今回はSeleniumの本を読んでみました。
https://www.amazon.co.jp/%E5%AE%9F%E8%B7%B5-Selenium-WebDriver-Satya-Avasarala/dp/4873116953/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=37P91S19EZ6Z0&dib=eyJ2IjoiMSJ9.T7453pEbh63qvbQV2fHeJM50-H0yvoaLz439Y9ZOxb34p-qe3DY9Vjh0zDWviIC0Y5p91aiGvkwpx0VfYPWij3DZ4DCdyewcbzFRajIZTuqjUwWFt9IaXgmw2-A9rjwdhKYYmh_abkbJiENSXL5DX8B6uHz7OZAwMGFOA0l8dFPfOaqhYu_jwpdnP__MIacWrqywB7KgQXO-2Wgj-M2uLid1qb1wliuIVKQblDB3uuVgvbL8nCloZw
Spring Securityについて理解する①(DelegatingFilterProxy、FilterChainProxy、SecurityFilterChain)
## セキュリティーフィルターの流れ
以下のフィルターチェーンの流れがSpring Securityの基本的な認証・認可処理のベースとなっている。
またこの「フィルターチェーンを通じて、セキュリティチェックが順番に実行され、最終的にリクエストがサーブレットに届く流れ」を`ダウンストリーム`という。①クライアントからリクエストが送られてくる
②フィルターチェーン(Filter0,Filter1,Filter2)を通る
③サーブレット(Javaアプリケーション)に到達
④サーブレットがレスポンスを作成し、クライアントに返却
>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3790294/df6424dd-e0c0-816a-fd3e-555273fa0462.png)
>[Architecture](https://docs.spring.io/spring-security/reference/servlet/architecture.html)## DelegatingFilt
MySQL_BETWEEN演算子で特定の範囲のデータを取得する
BETWEEN 演算子は、MySQLなどのSQLデータベースで、特定の範囲内にある値を検索するために使用されます。この演算子は、数値、日付、文字列などのデータ型に対して使用できます。
## 数値に対して BETWEEN を使う例
例えば、価格(price)が100から300の範囲にある商品を取得する場合:
“`sql:
SELECT *
FROM products
WHERE price BETWEEN 100 AND 300;
“`
このクエリは、価格が100以上300以下の全ての商品を返します。## 日付に対して BETWEEN を使う例
日付範囲に対しても BETWEEN を使うことができます。例えば、2024年1月1日から2024年1月31日までに注文されたすべての注文を取得するには:
“`sql
SELECT *
FROM orders
WHERE order_date BETWEEN ‘2024-01-01’ AND ‘2024-01-31’;
“`
このクエリは、2024年1月1日から2024年1月31日までに行われた全ての注文を返します。## 文字列
Oracle Java Bronzeオンライン試験を受けました(2024/10/5)
見出しの通り、JavaのBronzeをオンラインで受けました。
いやー、疲れました。というのも、事前情報(でも2024年6月とかもあった)で、
– メモ用紙をテーブルにおけない
– カメラテスト等事前準備が大変
– 上半身を常にカメラ内に収めないといけない
– オンラインといえど受けられる日時が決まっているなどなどを見ていたので、
焦って受けられるか確認しておかなければ、
とぽちったところ、
始まってしまって後戻りができず急いで受けたためです。## 受験理由
会社の業績評価目標に、Bronze取得を記載したため。
技術スキルあげたいといいつつ、
まぁJavaかけるかなぁ読めるかなぁ
という程度だったので、
まずはOracle認定受けようかなと思いました。## 経歴
新卒入社16年目
えっ、もうベテランレベルなのにBronze
ごもっともで何も言えないです。。。
開発をほとんどやらないSIerでゆるゆる育ってしまいました。## 資格取得
– 基本情報技術者
– Oracle Master 12c Gold
– AWS Certified Cloud Practitio
Splash画像のみ変えたい時(Android)
通常の設定だとSplash画像にはアプリアイコンの画像がそのまま表示されます。
Splash画像のみ変更したい場合、どのようにするのかを共有します。## 1. Splash用の画像ファイルを用意する
まず、Splash画面に表示したい画像を drawable フォルダに追加します。例えば、**ic_splash.png** という名前の画像ファイルを使うとします。
そして更に drwaableフォルダにxmlファイルを追加。例えば **background_splash** という名前にします。
“`kotlin:xml
Javaの実行の流れについて
Javaの実行の流れについて、コンパイルや機械語、メモリ管理、JDK、JREの役割などをわかりやすく説明します。初心者の方でも理解しやすいように、各ステップを順を追って解説します。
## 1. Javaの基本的な実行の流れ
## Javaプログラムを実行するためには、次のいくつかの大事なステップがあります:
1. **ソースコードの作成**: 開発者が`.java`ファイルにJavaのソースコードを記述します。ソースコードとは、人間が理解できる形式でプログラムの動作を指示するために書かれたコードのことです。例えば、料理のレシピのように、どの手順で何をするかを詳細に書き表したものです。
2. **コンパイル**: `javac`コンパイラを使用して、ソースコードをバイトコード(`.class`ファイル)にコンパイルします。コンパイルとは、人間が読めるソースコードを、コンピュータが理解できる形式であるバイトコードに変換することです。例えば、英語の文章を他の人が理解できる言語に翻訳するようなものです。**.classファイル**は、コンパイルされたバイトコードが保存されているファイルで
【備忘録】String.format の使い方
String.formatのメソッドについてのメモ書き。
## 文字列
文字列を扱う場合は、`%s` を使う。
“`java:Sample.java
public class Sample {
public static void main(String[] args) {
String place = “動物園”;
String str = String.format(“明日は、%sに行きます。”, place);System.out.println(str); // 明日は、動物園に行きます。
}
}
“`## 整数
整数を扱う場合は、`%d` を使う。
“`java:Sample.java
public class Sample {
public static void main(String[] args) {
int age = 30;
String str = String.format(“私は%d歳です。”, age);System.out.println(str); // 私は30歳
資格学習やハンズオンを経て感じたこと、学んだこと
# 目次
1.はじめに
2.資格関連について
3.ハンズオンについて
4.まとめ# 1.はじめに
入社して約6か月、現在は自社業務として資格勉強やハンズオンにて学習していてなかで学んだこと、感じたことについて紹介したいと思います。# 2.資格関連について
最初に資格勉強したのがJavaBronzeでした。もともとJava自体は専門で学んでいたのでそこまで苦労しないで取れると思っていました。感じたこと:
・普段聞かない用語に戸惑う
問題の中でも「データ隠蔽」「情報隠蔽」「ポリモーフィズム」という用語が出てきます。
専門学校でもこの用語自体あまり聞いたことがなかったので「え、なにこれ?」と思いました。
データ隠蔽と情報隠蔽って何が違う?ポリモーフィズムって継承とどう違うの?と疑問だらけでした。
・コンパイルエラーと例外スローの違いってなんだ?
問題の選択肢にいつもいるこの二つ。
最初はあまり違いだったりどういうときに起こるのか曖昧でした。
問題を解くなかで、コンパイルエラーが起こると思っていたのが例外スローになったり判別自体が難しかったです。学んだこと:
とに
Javaの日付型 java.sql.Timestampについて
# はじめに
日付の入力値を検証する際、**java.sql.Timestamp型** を使用すると
BindingResultでは意図しない影響を及ぼす事が判明したので備忘録として記載。
>入力値を受け取るフォーム
>“`java:DateMoldForm.java
>@Data
>@NoArgsConstructor
>public class DateMoldForm {
> private Timestamp timestampMold;
> private LocalDateTime datetimeMold;
>
> public DateMoldForm(VerificationDateMold entity) {
> this.timestampMold = entity.getTimestamp_mold();
> this.datetimeMold = entity.getDatetime_mold();
> }
>“`
# 影響について
必須入力ではない、日付を空文字で登録した場合Timestamp型ではエラ
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