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

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

Webアプリの開発環境からデータベースに接続できるようにする

# 前書き

https://qiita.com/gengen0719/items/bcdda4b8571f5e687051

この記事はこちらの記事の続き。
せっかくなのでデータベースを利用できるようにする。

# データベースの準備

## Dockerデスクトップのインストール

Docker Desktop for Windowsを押してインストーラーをダウンロードしてインストール。

https://docs.docker.com/desktop/install/windows-install/

## MySQLのDocker imageを取得する
“`
docker pull mysql
“`

## Docker Imageの起動
“`
docker run –name testdb -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=testdb -P –expose=3306 -p 3306:3306 -d mysql:latest
“`
– データベースの名前は `testdb`
– データベースのrootユーザ

元記事を表示

[Google Photos Library API] JavaでGoogleフォトのアルバムにエンリッチメントを追加する

Google Photos Library APIを使用して、
Googleフォトのアルバムにエンリッチメントを追加する方法
についてご紹介します。

**Googleフォトのエンリッチメントとは**
アルバムにいろいろな情報を紐づけることでアルバムのグルーピングが行えます。

Googleフォトのエンリッチメントは、テキスト、位置情報、地図の 3種類に対応しています。
|エンリッチメント|内容|UIの場所|
|—|—|—|
|テキスト|アルバムにアノテーションを付けるために挿入できる書式なしテキストの文字列||
|位置情報|場所にアノテーションを付けるために挿入できる場所の名前|DB操作を行う機能で「Bad value for type long」が出た際の原因と解決策

# 事象
Webアプリケーションのある機能で例外が発生し、ログを確認すると「**Bad value for type long**」と出力されている。
この機能はDB操作を伴う機能であるため、発行したSQLをデバッグしてみたところ正常に動作し、SQL自体は間違ってなさそうなことが分かっている。
# 解決策
DBにTimestampで定義されているカラムをUNIX秒(Long型)で取得したい場合
SQL発行後にまずは`java.sql.ResultSet.getTimestamp()`で値を取得する。
その後、`java.sql.Timestamp.getTime()`を呼び出して、java.sql.Timestamp型からLong型のUNIX秒に変換することができる。
“`java:修正後
Long lUnixTime = resultSet.getTimestamp(“DATETIME”).getTime();
“`
# 原因
アプリケーション内でDBへのSELECT文発行結果を取得する部分のコードに問題があった。
DB内にTimestamp型で格納されているカラムに対して`r

元記事を表示

JavaのOptionalをgolangにportする

# はじめに

Java さわってますか?私は10年近くさわってません。[JDK 8 Release Notes](https://www.oracle.com/java/technologies/javase/8all-relnotes.html#JSERN108)を見ると2014年5月15日にリリースされているので大体10年です。

この10年位は golang をさわってます。

Javaの勉強もしなければなと思いつつも、作りたいアプリケーションも特にありません。ドキュメントを読んでるだけというのも長続きしないかなと思ってます。そんな時に以下の2つのブログを読みました。

* [Goのヌル安全について](https://zenn.dev/nobonobo/articles/f49dd93073fdd3c6c663)
* [元JavaエンジニアがGoに感じた「表現力の低さ」と「開発生産性」の話](https://inside.dmm.com/articles/ex-java-engineer-thoughts-about-go/)

これらを読んで「 Java の Optional

元記事を表示

[Google Photos Library API] JavaでGoogleフォトの共有アルバムに参加・退出する

Google Photos Library APIを使用して、
Googleフォトの共有アルバムに参加・退出する方法
についてご紹介します。

共有アルバムへの参加・退出は、共有済みのアルバムで
同じGCP認証、かつPhotos Library APIで作成したアルバムのみになります。

アルバムの作成方法は
[⧉[Google Photos Library API] JavaでGoogleフォトのアルバムを作成・更新する](https://qiita.com/doran/items/b5ecc7005f19fbf0a35a)
を参照ください。

作成したアルバムの共有方法は
[⧉[Google Photos Library API] JavaでGoogleフォトのアルバムを共有・共有解除する](https://qiita.com/doran/items/b15fe890e79d9b0d9d18)
を参照ください。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Photos Library API(V1)] Java

元記事を表示

No.6【フローチャート(流れ図) 順次処理】

**【動画URL】** https://youtu.be/_fyVr5NOlGw

仕事の流れ・手順や処理などを示す図
決まった図を使うので、だれもがある程度同じものさしで見ることが出来る
正解はない

**【順次処理】朝起きてから家を出るまで**
![test.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3680113/bc3f6714-6e65-577a-fcb8-7c611ae65d5e.png)

まとめてご覧になりたいあなたは
https://zenn.dev/codek2/books/63c880c460c21e

Twitterもよろしければどうぞ!
[https://twitter.com/kunchan2_](https://twitter.com/kunchan2_)

詳しく学びたいあなたは
https://zenn.dev/codek2/articles/e9e44f3e0023fb

元記事を表示

No.5【コンピュータの3大考え方】プログラミングは一部の方だけのものではない!はじめてのプログラミング入門講座(アルゴリズムとJava基礎)動画付き

**【動画URL】** https://youtu.be/CfU-z__0GtU

プログラミングをする時は、以下のどれかが使えないか考えて作ると良い

**順次構造**
上から順番に実行される

**分岐構造**
天気が雨の時は傘を持って行く、晴れの時は持っていかないなど条件によりやることが変わる
![](https://storage.googleapis.com/zenn-user-upload/57796d987536-20231009.png)

**繰り返し(反復)構造**
陸上トラックをぐるぐる回る様に、同じことを何回も繰り返す
![](https://storage.googleapis.com/zenn-user-upload/a46035309038-20231009.png)

まとめてご覧になりたいあなたは
https://zenn.dev/codek2/books/63c880c460c21e

Twitterもよろしければどうぞ!
[https://twitter.com/kunchan2_](https://twitter.com/kunc

元記事を表示

357日目「よく使うプログラム言語」について紹介する社畜M

## はじめに
社畜Mです。今回私はSEの人たちが使用するプログラム言語の中で最も使われているであろう5つの簡単な特徴と、それぞれの使いどころと使うときの注意点について紹介していこうと思います。予習や復習だと思ってみてみましょう!
デュエル!!

### 1.Python
行くぜ!まず一つ目はこいつだ!ドロー!
Pythonはシンプルで読みやすい構文が特徴のプログラミング言語で、初心者にとって扱いやすく、さまざまな用途に使われています。Web開発からデータ分析、AIの開発まで幅広い領域で利用されていて、特にデータ処理や科学技術計算において強力なライブラリが揃っており、簡潔なコードで高度な処理が可能です。
– **注意点**
– 実行速度がほかの言語に比べて遅い
– Pythonは動的型付け言語であり、実行時に型の解決が行われるため、コードの実行に余分なオーバヘッドが生じることがあります。
– Pythonのインタプリタは動的な型変換やガベージコレクションなどのオーバーヘッドがあり、これが実行速度に影響を与えることがあります。

元記事を表示

Springを使っている時に静的メソッドじゃなくてDIを使うようにした

状態を持たないロジックを実装したいとき、以前は以下のように書いていました。
静的なクラスメソッドを使って、判定するみたいな。

“`kotlin
class Validator private constructor() {
companion object {
fun validate(foo: String){
if foo == “NG”{
throw Exception(“validation error”)
}
}
}
}
“`

呼び出し元イメージ
“`kotlin
@RestController
class Controller(service: Service){
fun bar(@GetMapping String foo) {
Validator.validate(foo)
service.someMethod(foo)
}
}
“`

ただ、現在はSpringを使って開発しており、D

元記事を表示

[Google Photos Library API] JavaでGoogleフォトのメディアアイテム(写真や動画)を追加・更新する

Google Photos Library API(Java)を使用して、
Googleフォトのメディアアイテム(写真や動画)を追加・更新する方法
についてご紹介します。

メディアアイテムを追加できるアルバムはPhotos Library APIで作成したアルバムのみになります。
アルバムの作成方法は
[⧉[Google Photos Library API] JavaでGoogleフォトのアルバムを作成・更新する](https://qiita.com/doran/items/b5ecc7005f19fbf0a35a)
を参照ください。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Photos Library API(V1)] JavaでPhotos Library APIを使う](https://qiita.com/doran/items/8695e6007765ab5b382c)
を参照ください。
:::

|No|||目次|
|—|—|—|—|
|1|||[メディアアイテムを追加](#1-メ

元記事を表示

【Flutter】Javaのバージョンを上げるのにハマった

# はじめに
### Javaのバージョンを上げることになった経緯
[package_info_plus](https://pub.dev/packages/package_info_plus)のバージョンを上げると、下記のようなエラーが出ました。
“`
Execution failed for task ‘:package_info_plus:compileDebugJavaWithJavac’. > エラー: 17は無効なソース・リリースです
“`

調べたところ、下記のIssueがヒットし、どうやら、[package_info_plus](https://pub.dev/packages/package_info_plus)の`6.0.0`以降では、Javaのバージョン17が必要みたいです。
https://github.com/fluttercommunity/plus_plugins/issues/2809

パッケージのCHANGELOGにも書いてありました。

https://pub.dev/packages/package_info_plus/changelog#6

元記事を表示

No.4【大好評!アルゴロジック】プログラミングは一部の方だけのものではない!はじめてのプログラミング入門講座(アルゴリズムとJava基礎)動画付き

アルゴロジック
https://algo.jeita.or.jp/

使い方は
【動画URL】 https://youtu.be/U__0zXiWYvU

まとめてご覧になりたいあなたは
https://zenn.dev/codek2/books/63c880c460c21e

Twitterもよろしければどうぞ!
[https://twitter.com/kunchan2_](https://twitter.com/kunchan2_)

詳しく学びたいあなたは
https://zenn.dev/codek2/articles/e9e44f3e0023fb

元記事を表示

No.3【使用するプロジェクト・完成例のプロジェクトのインポート】プログラミングは一部の方だけのものではない!はじめてのプログラミング入門講座(アルゴリズムとJava基礎)動画付き

使用するプロジェクトは↓からダウンロードして下さい
https://firestorage.jp/download/6ecd31f2487414500c6e9eebe7b80a981bc6e925

1. JavaBasicUdemy.zipを解凍し、フォルダをC:\pleiades\workspaceフォルダ内にコピー(前のチャプターの通りインストールした場合)
![](https://storage.googleapis.com/zenn-user-upload/573be8fe6c9e-20231009.png)

2. Eclipseを起動し、[ファイル]→[インポート]→[既存プロジェクトをワークスペースへ]を選択→[次へ]
![](https://storage.googleapis.com/zenn-user-upload/22d701d78374-20231009.png)

3. [参照]ボタンからworkspaceへコピーしたフォルダ(JavaBasicUdemy)を選択→[完了]
![](https://storage.googleapis.com/zenn-us

元記事を表示

No.2【Eclipseのインストール】プログラミングは一部の方だけのものではない!はじめてのプログラミング入門講座(アルゴリズムとJava基礎)動画付き

https://willbrains.jp/ にアクセス

任意のバージョン(講座はEclipse2022を使用します)をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3680113/6c34913f-4132-f4eb-f6df-35b5a0c93247.png)

画面が以下のようになっていた場合、赤枠部分をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3680113/b54b9975-2a95-ee10-030a-756782ab02a0.png)

Windows x64のJavaのFull Editionをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3680113/70c39b8e-7d0c-cbda-7b21-13bcd37aa699.png)

元記事を表示

No.1 プログラミングは一部の方だけのものではない!はじめてのプログラミング入門講座(アルゴリズムとJava基礎)動画付き

プログラミングは一部の方だけのものではなく、一見関係のないあなたも学習することで普段の生活や仕事にも十分に役に立つことでしょう!

プログラミングを学習することで以下の事が期待出来、収入アップにつながるかもしれません!

・論理的思考が身に付く

・他人に物事を伝えるのがうまくなる

・副業になる

楽しく充実したプログラミング体験を通じて、コーディングの楽しさを実感しませんか?

知識と自信を手に入れ、次のステージへの飛躍を実現しましょう!

★スキルアップのコツ★

・分からないことがあれば、ネットで調べましょう!

・文章を読んでいる途中で分からない単語に出会ったら、さらに調べましょう!

・分からないことがあれば、教科書を見たり、自分でまとめた内容を復習することで解決出来たり、インターネットで調べて解決出来れば大丈夫です!

・頭より先に手が動くように、繰り返し入力して身体に覚えさせましょう!

・講座で学んだ事を誰かに説明してみましょう!お一人の場合は架空の誰かを想定しての練習でもOK!

プログラミングの上達のコツについては↓
https://zenn.dev/codek2

元記事を表示

[Google Photos Library API] JavaでGoogleフォトのメディアアイテム(写真や動画)を検索する

Google Photos Library APIを使用して、
Googleフォトのメディアアイテム(写真や動画)を検索する方法
についてご紹介します。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Photos Library API(V1)] JavaでPhotos Library APIを使う](https://qiita.com/doran/items/8695e6007765ab5b382c)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[メディアアイテムを検索](#1-メディアアイテムを検索)|
||1|[スコープ](#11-スコープ)|
||2|[実行](#12-実行)|
||3|[レスポンスの内容](#13-レスポンスの内容)|

## 1. メディアアイテムを検索
メディアアイテム(写真や動画)の検索します。

### 1.1. スコープ
このAPIを実行するには、以下のいずれかのスコープを指定してください。
“`
https://www.googleapis

元記事を表示

[Google Photos Library API] JavaでGoogleフォトのアルバム内のメディアアイテム(写真や動画)を削除する

Google Photos Library APIを使用して、
Googleフォトのアルバム内のメディアアイテム(写真や動画)を削除する方法
についてご紹介します。

削除可能なメディアアイテム(写真や動画)は
同じGCP認証、かつGoogle Docs API V1で作成したメディアアイテムのみです。

メデイアアイテムの作成方法は
[⧉[Google Photos Library API] JavaでGoogleフォトのアルバムを作成・更新する](https://qiita.com/doran/items/b5ecc7005f19fbf0a35a)
を参照ください。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Photos Library API(V1)] JavaでPhotos Library APIを使う](https://qiita.com/doran/items/8695e6007765ab5b382c)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[メディアアイテ

元記事を表示

バリデーション

半角のみの入力を制限するバリデータ
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

public class HalfWidthValidator implements ConstraintValidator {
@Override
public void initialize(HalfWidthOnly constraintAnnotation) {
}

@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null) {
return true; // null値は許可
}
return value.matches(“[\\x00-\\x7

元記事を表示

[Google Photos Library API] JavaでGoogleフォトのアルバムを共有・共有解除する

Google Photos Library APIを使用して、
Googleフォトのアルバムを共有・共有解除する方法
についてご紹介します。

共有や共有解除できるアルバムはPhotos Library APIで作成したアルバムのみになります。
アルバムの作成方法は
[⧉[Google Photos Library API] JavaでGoogleフォトのアルバムを作成・更新する](https://qiita.com/doran/items/b5ecc7005f19fbf0a35a)
を参照ください。

:::note info
APIを利用する環境の準備から始める場合や、コードを実行する際は、
[⧉[Google Photos Library API(V1)] JavaでPhotos Library APIを使う](https://qiita.com/doran/items/8695e6007765ab5b382c)
を参照ください。
:::

|No||目次|
|—|—|—|
|1||[共有する](#1-共有する)|
||1|[スコープ](#11-スコープ)|
||2|

元記事を表示

動的型付言語(Python)と静的型付言語 (Java)の簡単な比較

動的型付言語と静的型付言語の違いを、Pythonを動的型付言語の例に、Javaを静的型付言語の例にしてコードで比較。

## 動的型付言語 (Python)

“`python
# 変数の宣言時に型を指定する必要がない
x = 10
print(type(x)) #

x = “Hello”
print(type(x)) #

# 関数の引数や戻り値に型を指定する必要がない
def add(a, b):
return a + b

print(add(1, 2)) # 3
print(add(“Hello”, “World”)) # HelloWorld
“`

## 静的型付言語 (Java)

“`java
public class Main {
public static void main(String[] args) {
// 変数の宣言時に型を指定する必要がある
int x = 10;
System.out.println(x); // 1

元記事を表示

OTHERカテゴリの最新記事