JAVA関連のことを調べてみた2020年12月05日

JAVA関連のことを調べてみた2020年12月05日

【Java・SpringBoot】RowCallbackHandlerでコールバック / CSV出力機能(SpringBootアプリケーション実践編18)

ホーム画面からユーザー一覧画面に遷移し、ユーザーの詳細を表示するアプリケーションを作成して、Spring JDBCの使い方について学びます⭐️
今回は**RowCallbackHandler**を使って、**ユーザー一覧画面からCSV出力する機能**を作ります^^
構成は前回/これまでの記事を参考にしてください

⭐️前回の記事
[【Java・SpringBoot】Spring JDBC / ResultSetExtractor(SpringBootアプリケーション実践編17)](https://qiita.com/suema0331/items/b55919b2076207790164)

#RowCallbackHandler
* RowCallbackHandlerでコールバックして、**ユーザー一覧画面からCSV出力する機能**を作ります

###コールバックとは
* 時間のかかるような処理を**別のコールバック関数に実行依頼**する
* その処理が終わるまで**他の処理を行うことができる**
* コールバック関数の処理が終わったら結果を受け取る

###RowCallback

元記事を表示

【Java】Viewの概念( MVCモデル )


# Viewの概念


## 一言まとめ
$「View」は、JSPなどの「Model」をユーザインタフェースに出力するのを担当するもの$


## 【説明】

「View」は、JSPなどの「Model」の表示を担当する部分で、ユーザインタフェースへの出力を担当します。
modelに保存されている情報は、viewに渡されることで初めてユーザーが確認できます。

ウェブアプリケーションではHTMLやCSSなどを指し、一般的なGUIではウィジェットの階層構造を指します。


## 【メリット】
Viewがデータベースの情報をただ数値で表示するだけでなく、グラフや図などを利用してより視覚的に表示したり、配置や配色などを工夫することで、UXの高いアプリケーションを構築することに繋がる。


## 【特徴】
J2EEでは、JSPがよく利用されます。
MVCモデルにおいての JSP の役割は、ブラウザ

元記事を表示

【Java】Model の概念( MVCモデル )


# Model ( MVCモデル )
「Model」という概念についてのメモ。


## 一言まとめ
モデルとは
$「データを処理したり、データをDBへ保存したりする部分」$


## 【説明】
Modelの仕事は主に以下のような「データベースの処理を司る部分」のことです。

– ビジネスロジックを書く部分
– データを処理したり、データをDBへ保存する
– DBからデータを取得してControllerへ送る
– データベースとデータのやり取りを行う機能を実装
– データベースから取得したデータを形式でデータを変換

データを処理する部分は、Logic(ロジック)という別の場所を用意して書くこともある。


## 【メリット】
MVCモデルのメリットとして、、

– 役割でアプリケーション開発が効率的に行える
– それぞれで分割して専門性が高い仕事が可能
– 専門的な仕事の独立性が非常に高い
– 変更などの対応にも柔軟に行な

元記事を表示

結婚生活における不吉な匂いをリファクタリングする方法を考えてみる

[アジャイルを使ってクリスマスまでに彼女を作る方法を考えてみる](https://qiita.com/Let_kdm_free/items/7287325f4a3541e4551e) を踏まえ
[結婚生活は生涯にわたるリファクタリング](https://qiita.com/Let_kdm_free/items/7287325f4a3541e4551e#comment-d37ae4bb02ce78decb91) との声があった。良い指摘だとおもった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93824/4f527e57-dcef-fbff-4948-38ad3f8dfc20.png)

ので、考えてみました。

## 結婚生活における[不吉な匂い](https://qiita.com/NagaokaKenichi/items/22972e6ba698c7f2978a#%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E4%B8%8D%E5%90%89%E3%

元記事を表示

enum型をわかりやすく説明する

## はじめに

Javaではenum型というものを使って、定数を定義するらしい。
これまで仕事でちょくちょく使っていたが、知識不足を痛感したので、勉強がてら使い方などをまとめてみる。
enumの定義や基本的な使い方を扱い、忘れたときに参照できるような記事を作成していく。

## enumとは?

“enum“はJava5.0から導入されており、“列挙型“と呼ばれ、関連のある定数(列挙子)をまとめるためのクラスの特殊な形式である。

## 使い方

基本的な使い方としてはまとめたい定数を
**大文字** で定義し、 **カンマ区切り** で列挙していく。

“` java
public enum Drink {
COLA, CIDER, COFFEE

// また、以下のように改行も可能
public enum Drink {
COLA,
CIDER,
COFFEE
}
“`

また、それ以外にも以下のようなことが可能である。

1. フィールド、コンストラクタを定義することで、定数に関連する値を紐付けることができる。
2. 定数特有の処理を行うためのクラス本体

元記事を表示

【Java・JDBC】INSERT, UPDATE, DELETEを実行する


# INSERT, UPDATE, DELETEを実行する


## 一言まとめ
DB接続からSQLの値を書き換える方法についてのメモです。

## executeUpdate() 【戻り値で更新行数を返却】
SQLのINSERT文、UPDATE文、DELETE文の実行は、executeUpdate() メソッドを使用します。
executeUpdate()メソッドは、前処理済みのINSERT文,UPDATE文,およびDELETE文を実行した場合、[戻り値]で更新行数が返却されます。これら以外のSQL文を実行した場合は,0が返却されます。

“`java
Statement statement = connection.createStatement();
String SQL = “INSERT INTO テーブル名(カラム名, カラム名, …) VALUES( 値, 値, …) “;
statement.executeUpdate(SQL);
“`

元記事を表示

【Java】SQLを実行する ( データの格納 )


# SQLを実行する


## 一言まとめ
SQLから取得したデータの格納についてメモです。


## 【説明】
WEB画面の裏側には大体なにかデータベースが存在してプログラムで制御しています。
例えば、入力フォームに郵便番号を入れるだけで続きの住所がドバっと入力されたりする仕組みは以下のような流れです。

1. 値が画面で入力される
2. プログラミングがデータベースでSQLを実行する
3. データベースから住所の情報が返ってくる
4. プログラムが受けとってWEB画面に表示する

## Step1 : 主要インタフェース

## SQLのパッケージをインポート
[パッケージ]宣言のあとに、SQL関連の[インポート]を記述します。

“`
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

元記事を表示

Apache POIのバージョンアップ

mavenなどの ライブラリ管理ツールを使用していない状態でApache POIをバージョンアップする作業のメモです。

### 前提条件

* バージョンアップ前のPOI:3.0.2
* バージョンアップ後のPOI:4.1.2
* javaのバージョン:8
* IDE:eclipce(4.4.2)

### バージョンアップ前

今回は処理の内容はさほど重要ではないので簡単にエクセルに書かれた内容を読み込んでコンソールに出力する処理を書きました。

“`Test1.java

import java.io.FileInputStream;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs

元記事を表示

Apache Pulsar (MQ) を使う Java のサンプルコード

## 概要

– Apache Pulsar は MQ (メッセージキュー) プラットフォーム
– Apache Pulsar を使う Java のサンプルコードを動かして挙動を見る
– 環境: Apache Pulsar 2.7.0 (スタンドアローンモード) + Apache Pulsar Java Client 2.7.0 + Java 11 (AdoptOpenJDK 11.0.9.1+1) + Gradle 6.7.1 + macOS Catalina

## Apache Pulsar をインストールしてスタンドアローンモードで起動

“`
$ wget https://archive.apache.org/dist/pulsar/pulsar-2.7.0/apache-pulsar-2.7.0-bin.tar.gz
$ tar xfz apache-pulsar-2.7.0-bin.tar.gz
$ cd apache-pulsar-2.7.0
$ bin/pulsar standalone
“`

## テナントとネームスペースを作成

別のターミナルにて pul

元記事を表示

JAVA, Python, JavaScript, C# あなたはXML処理ソフトをどの言語で書きますか?

#Java Python Javascript C# XMLならどれで書きます? 
短歌形式

中間報告
2020120511000時点

|言語|投票・返信|
|:—-|:—-|
|Java|0|
|Python|0|
|JavaScript|0|
|C#|0|
|C++|0|
|Ruby|1|
|awk|1|
| 合計|2|

vscodeでバックエンドプロジェクト向けの開発環境導入(HelloWorldまで)

#はじめに

[自分用 技術の振り返り Advent Calendar 2020](https://qiita.com/advent-calendar/2020/my-tech)の2日目、フロントエンドがいれば、サーバーサイドもいる。
バックエンドの業務環境の構築を振り返ります。

現業務では `eclipse` を利用しているものを、`vscode` で構築していきたいと思います。

自分用ですが、初学者をターゲットに専門用語をなるべく利用しない、シンプルな記事を投稿していく予定です。
中級, 上級者の方にはあまり向いていないものと思われます。

#目的
業務で利用しているバックエンドの開発環境導入を `vscode` に読み替えて振り返る。

#動機
プロジェクト参画時、Java環境導入にあたって、IDE・JDK[^1]を
どういった手順で揃えるか、何度も行う作業ではないので記録していく。

#環境
OS: Windows7(そんなに10と変わらんでしょの精神)

#前提条件

[1日目](https://qiita.com/advent-calendar/2020/my-tech

元記事を表示

初歩から学ぶSpring Session using Db2 第0回:環境セットアップ

# 0. はじめに

Spring Sessionお試し用Webアプリは[こちら]( http://github.com/kyosuke-yamagata/spring-session-with-db2-demo/tree/master )で公開しています。

本記事で解説している手順を実施した後に、
Webアプリを起動させて
ブラウザから、/sessionDemoにアクセスすると
Db2上のテーブルにSession情報が永続化されます。

# 1. 導入 〜 Spring Sessionの魅力 〜

「使った分だけ課金」ポリシーのクラウドサービスが多い昨今は
「立ち上がりっぱなし」転じて
「On-Memoryに状態を保持しっぱなし」Webアプリだと肩身が狭い。

– 持て余しているリソース(CPU、Memory etc…)は、欲しい人に譲りたい。
– 処理要求が無いのなら、休眠していて欲しい。

とはいえ、ステートフルにデータを扱いたい場合もあるので
休眠させるにしても、アレコレ検討が必要。
例えば、ログイン完了した後に、データ色々と持ち回りたいケース等。

つまり、ク

元記事を表示

【JAVA】JDBCでDBに接続する準備

# JDBCを利用してJavaからデータベースにアクセスする方法

JDBCをインストールしJavaのプロジェクトに接続するための準備を行います。

## JDBCドライバとは
Javaプログラムに対して定義した機能を提供し、DBへ接続して処理を行う部分です。
ほとんどのデータベース各社が提供しています。

## PostgreSQLに接続する準備
### 事前準備
まず、前提として以下の2点を済ませておくこと。

– データベース、テーブル、データの投入SQLの実行確認
– [PostgreSQLのドライバ](https://jdbc.postgresql.org/download.html)のダウンロード
– プロジェクトを作成

JDBCドライバのjarファイルをプロジェクトのクラスパスに追加します。
Eclipse上から以下の操作を行います。

3. プロジェクト内のフォルダに「lib」フォルダを選ぶ
4. postgresqlのjarファイル をコピー
3. コピーしたjarファイルを右クリック「ビルド・パス」→「ビルド・パスに追加」

ビルド・パスの追加に成功すると、「

元記事を表示

ArchUnit 実践:実行環境やフレームワークへの依存を禁止するアーキテクチャテスト

“`
// 実行環境
* AdoptOpenJDK 11.0.9.1+1
* Spring Boot 2.4.0
* JUnit 5.7.0
* ArchUnit 0.14.1
“`

## アーキテクチャテストのモチベーション

ドメイン層は技術的な詳細に依らず、ビジネスのコアロジックを表現します。それらは特定の実行環境やフレームワークとも疎であるべきです。

## アーキテクチャテストの実装

### ドメイン層は Web 実行環境 (Java Servlet) に依存しない

“`java
package com.example;

import com.tngtech.archunit.core.domain.JavaClasses;
import com.tngtech.archunit.core.importer.ClassFileImporter;
import com.tngtech.archunit.core.importer.ImportOption;
import org.junit.jupiter.api.Test;

import static co

元記事を表示

【Java・JSP】暗黙オブジェクト


# 暗黙オブジェクト


## 一言まとめ
宣言なしでJSP内で使用できるオブジェクト


## 【説明】

javaでは `system.out.println()` と記述するだけで値の出力が可能ですが、
jspでも同じ様に、特別な宣言を行わずout.print()と記述すれば値の出力が行えます。
こういった、宣言無しで最初から利用できるオブジェクトが暗黙オブジェクトです。


## 【特徴】
暗黙オブジェクトの簡単な利用方法は以下です。

| オブジェクト名 | 説明 |
| ————– | ————————————— |
| request | クライアントからのリクエストを取得する |
| response | クライアントへのレスポンスを設定する

元記事を表示

【Java】正規表現を使って数値をチェックする方法

#プログラミング勉強日記
2020年12月4日
正規表現を使うことで、書き方によってばらつきが生じることにも対応した検索や処理を行うことができる。今日はJavaの正規表現を使った数値をチェックする方法を学んだのでまとめる。

#正規表現とは
 まず、正規表現について紹介する。正規表現は文字列のパターンを表現するための記号の組み合わせのこと。正規表現を使うことでその文字が漢字・数値・メールアドレスといった特定のパターンであることを判別することができる。

##正規表現の書き方
 正規表現の意味と記号を紹介する。

| 記号 | 記号の説明 |
|:–:|:–:|
| . | 任意の1文字。改行文字は除く |
| * | 直前の1文字の0回以上の繰り返しと一致 |
| ^ | 行の先頭 |
| $ | 行の末尾 |
| [ ] | カッコ内の任意の1文字と一致。`-`で範囲指定可。|
| [^ ] | カッコ内の任意の1文字と不一致。`-`で範囲指定可。|
| + | 直前の文字の1個以上の繰り返しと一致 |
| ? | 直前の文字が0個または1個の場合に一致 |
| { } | カッ

元記事を表示

javaメモ

・Java言語とは?
①プログラミング言語の一種です。コンピュータに「何をどうするのか」という指示を出します。
②Java言語は機種依存性が非常に少ない言語です。
 あるコンピュータ上のJava言語で開発したプログラムが他の機種のコンピュータ上でも動作するということです。
③Java言語は「型」の制約が厳しく誤りをおかしにくい言語です。
④使われなくなったメモリは自動的に回収される仕組み(ガーベッジコレクション)が用意されており、メモリの開放忘れなどが起きません。
⑤Java言語はオブジェクト指向言語です。ハードウェアが数多くの部品で構成されているように、プログラムも数多くの部品で構成されています。
 Java言語ではプログラム全体がオブジェクトという部品によって構成されています。
⑥Java言語はマルチスレッドを取り扱うことのできるプログラミング言語です。
 複数のスレッド(動作してる主体)を簡単に扱うことができ、平行プログラミングを行うことが出来ます。

・開発環境
①Java開発環境(JDK)
 JDK(Java Development Kit)はJava言語で使用することができ

元記事を表示

JavaのWebアプリケーションをDockerのマルチステージビルドでデプロイする

本記事は[東京学芸大学 櫨山研究室 Advent Calendar 2020](https://qiita.com/advent-calendar/2020/hazelab)の四日目の記事になります.

# 概要

– Javaで作成したWebアプリケーションをDockerを使ってデプロイする

本記事のコードは以下のGitHubリポジトリで公開しています.

# 動作させるアプリケーション

> ~~Building Java Web Applications, https://guides.gradle.org/building-java-web-applications/~~
> Building Java

元記事を表示

だからボクはオブジェクト指向が使いこなせない Android/Java編

#はじめに
本記事は、Android/Java開発において、オブジェクト指向を使いこなしたい、という方に向けた記事です。
私が10年近くAndroidアプリ開発に関わってきて思うのが、開発現場でオブジェクト指向らしいコードを書けるプログラマーは、残念ながら全体の2割にも満たない、ということです。(あくまで私個人の感想です)。
逆に言えば、オブジェクト指向らしいコードを書けるようになるだけで、開発現場で重宝される人材になれます。Androidの最新技術やKotlinの勉強をすることも大切ですが、開発現場でより即効性があり、かつ、Android以外のプログラミングにも応用できる、潰しのきく技術、それがオブジェクト指向らしいコードを書く技術です。

##どうしたらオブジェクト指向らしいコードを書く技術を身につけられる?
※具体的な技術的な話をすぐに読みたい方は「開発現場」の段落までスキップしてください。
昔、先輩社員に「どうしたらオブジェクト指向らしいコードを書く技術を身につけられるか」を聞いたところ「開発経験を積むこと」というあいまいな答えをもらい悩んだことがあります。この「開発経験」は自

元記事を表示

OTHERカテゴリの最新記事