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

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

javaでwebApi備忘録

#事前準備
・エクリプスの最新版

①eclipsのインストール方法
https://snome.jp/framework/springboot-install-win/
SpringBootの使用の前までで完了
ワークスペースのなぞ?
Eclipse はワークスペースとして指定されてディレクトリに “.metadata” という隠しディレクトリを作るので、これを検索します。
②Javaコンパイラの設定
特に設定しなくてもOK
③WEBAPIの作成方法
 サンプルを元にマーベンのPOMを変更
 https://codezine.jp/article/detail/11380?p=3
 
 ④Java Spring Boot JSONの送信と受信のサンプル
 https://itsakura.com/java-springboot-json#s7
ハローワールドの出し方
https://qiita.com/kuro227/items/d7da647e9f3be78a5f92
アクセスするURL
http://localhost:8081/hello/
リファレンスAPI スプリング
ht

元記事を表示

Docker, java, vscodeの開発環境を構築

##前回の記事
[初心者がdocker for macをインストールしてphp7.0の動作環境を用意する](https://qiita.com/RubyLrving/items/2f22ecdbabd94dff05c0)

##この記事
前回はphp7.0の動作環境を用意しました。
今回はjavaを用意してみます。
目標はdocker + java + vscode。

##参考記事
[Visual Studio CodeのRemote DevelopmentとDockerで快適な開発環境をゲット
](https://tech-lab.sios.jp/archives/18677)

##Remote Development
Remote Developmentの拡張機能をインストール

##Microsoftが公開してるテストプロジェクトのクローンを用意
“`cmd:git
git clone https://github.com/Microsoft/vscode-remote-try-java
“`

##テストプロジェクトを開く
Visual Studio Codeの左下の緑

元記事を表示

☾ Java / 繰り返し文と繰り返し制御文

 いつまでも苦手なので。

## ✴︎ 繰り返し文とは
 繰り返し処理は**ループ**とも呼び、繰り返し文には、大きく分けて**while文**、**do-while文**、**for文**の3種類があります。

### 1. while文
 **while文**は、指定された条件が成立する(条件式の結果がtrueである)間、繰り返し処理を行います。

“`Sample.java
while (条件式) {
処理文; // 条件式の結果がtrueの場合に処理文が実行される
}
“`

 処理文が1文しかない場合は、{}を省略できます。
 whileの後ろの()には、条件式を記述します。条件式は、boolean値(trueまたはfalse)になる式でなければいけません。条件判定の結果がtrueの場合、{}で囲んだ処理文が実行されます。処理文は複数行記述することができます。処理文の実行後は、また条件式に制御が移ります。

“`Sample.java
public class Sample {
public static void main(String[] ar

元記事を表示

Java のメソッドで複数の値を返す方法あれこれ (標準ライブラリや外部ライブラリを使用)

## 概要

– Java のメソッドで複数の値を返す方法について、標準ライブラリや外部ライブラリを使用したサンプルコードを挙げる (3つの値を返すサンプルコード)

## 環境

– Java 15 (AdoptOpenJDK 15+36)
– Gradle 6.6.1
– macOS Catalina

## 使用している外部ライブラリ

– Kotlin Standard Library 1.4.10
– Scala Standard Library 2.13.3
– Apache Commons Lang 3.11
– Functional Java 4.8.1
– javatuples 1.2
– jOOλ 0.9.14
– Reactor Core 3.3.10
– Vavr 0.10.3

## 外部ライブラリを使わない方法

### 標準ライブラリ java.lang.Object[]

Object の配列に値をセットして返す。
受け取った側はキャストが必要。

“`java
public class ArraySample {

static Object[]

元記事を表示

【Java】OpenCSVでファイルの値を変換して取り込む

## 概要
JavaにはCSVファイルをBeanに取り込むためのライブラリで、OpenCSVというものがあります。[JavaのCSVライブラリ「opencsv」](https://qiita.com/sunnycloudy764/items/c117e769863dc96edc59)の記事にある通り、列名とBeanのプロパティ名を紐付けて取り込むことができます。
今回の記事は、ファイルの値を変換してBeanに取り込むときの対応を紹介します。

## 対応
[こちら](https://stackoverflow.com/questions/51155224/opencsv-wrong-date-format)のStackOverflowに書いてあるのが日付の変換例です。アノテーションの`converter`に変換用のクラスを設定して、変換します。

## 実装サンプル
文字列から日付の変換例を、実装サンプルとしてのせます。

ファイル中の`created_at`列を`LocalDateTime`型に変換します。

“`SampleCsvBean.java
public class Sa

元記事を表示

サーブレットとは?

#サーブレットが理解できないのでまとめ
サーブレットって聞くけど理解できていないのでまとめる。
jboss,tomcatコンテナの違いもよく理解できていないのでまとめる。

#サーブレットとは
WEBサーバ(バックグラウンド上)で動作する。
javaプログラム。
javaプログラムなので実行環境が必要。
それが、サーブレットコンテナ。
また、サーブレットコンテ内でhttpを受け取り、サーブレットを動作させる。
 ⚠️これが、get, post などの通信
 ⚠️HTTPは、 「Hyper Text Transfer Protocol」の略のため
   javaによらずhttp通信が行われている。(phpとか)
   javaの場合httpRequestクラスを継承しhttpサーブレットを取得し使用している。
   

#サーブレットコンテナとは
javaサーブレットを動作させるための実行環境

例として

Apache Tomcat、JBoss Application Server、Apache Geronimo、Webspehere、Jetty

+ Apache tomcat (⚠

元記事を表示

Java・ツイッタークローン・タスク管理システム⑥削除機能をつける

##はじめに
Javaを使って初めてアプリケーションを作成する人にむけて記事を書いてみようと思います。
ポートフォリオや、会社の研修課題作成の参考にしていただければ幸いです。
今回は、タスクマネージャーを作成します。
これを応用することで、ツイッタークローンの作成にも活かすことができます。

アプリケーションの機能ごとに記事を投稿していきます。
1.データベース作成
2.ログイン機能
3.タスクの登録機能
4.一覧表示
  -ソート機能
  -検索機能
5.編集機能
6.削除機能
7.排他制御について

*詳しい説明はコード内に書いてありますので、コピペする人は消して使ってください

##実行環境
eclipse4.16.0
Tomcat9
Java11
Mysql5.7

目次
1.viewの作成
2.DAOの作成
3.サーブレット作成
4.次回予告

#viewの作成

タスクの削除前にここでタスクの詳細の確認をしてもらう

“`task-delete.java
<%@ page language="java" contentType="text/html; charset=UT

元記事を表示

Java・ツイッタークローン・タスク管理システム⑤編集機能をつける

##はじめに
Javaを使って初めてアプリケーションを作成する人にむけて記事を書いてみようと思います。
ポートフォリオや、会社の研修課題作成の参考にしていただければ幸いです。
今回は、タスクマネージャーを作成します。
これを応用することで、ツイッタークローンの作成にも活かすことができます。

アプリケーションの機能ごとに記事を投稿していきます。
1.データベース作成
2.ログイン機能
3.タスクの登録機能
4.一覧表示
  -ソート機能
  -検索機能
5.編集機能
6.削除機能
7.排他制御について

*詳しい説明はコード内に書いてありますので、コピペする人は消して使ってください

##実行環境
eclipse4.16.0
Tomcat9
Java11
Mysql5.7

目次
1.viewの作成
2.DAOの作成
3.サーブレット作成
4.次回予告

#viewの作成
今回は、編集ページを作っていきます。以前記事にしたタスク登録画面に大変似ているので、簡単に確認してください。
タスク編集は、ログインユーザなら自分が投稿した物以外も編集することができるようになっております。

“`

元記事を表示

[Kotlin]IPアドレスとユーザーエージェントの取得方法

“`kotlin
import javax.servlet.http.HttpServletRequest

fun function(request: HttpServletRequest) {
val ipAddress: String = request.remoteAddr // “127.0.0.1”
val userAgent: String = request.getHeader(“user-agent”) // “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36”
}

“`

元記事を表示

【自分用】サーブレットクラスの処理の転送

【課題】乱数を発生させて、偶数が生成された場合はフォワードに、
奇数が生成された場合はリダイレクトに処理を転送する

【サーブレットクラス】

“`java

package p185;

import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(“/P185”)
public class P185 extends HttpServlet {
private static final long serialVersionUID = 1L;

元記事を表示

[超超初心者向け]オブジェクト指向とは

#オブジェクト指向とは

オブジェクト指向について復習する機会があったので、ここでアウトプットしておく。

今回は以下の書籍を参考に学習した。
[「スッキリわかるJava入門」 中山清喬・国本大悟 著](https://sukkiri.jp/books/sukkiri_java3)

##オブジェクト指向の定義
この書籍ではオブジェクト指向は

>ソフトウェアを開発するときに用いる**部品化の考え方**のこと

と定義されている。
ここで言う、部品というのはJavaにおけるクラスとも言いかえられる。
世の中にある部品(人物やもの)をクラスとして記述することで、それらの特徴や行動をプログラム化(
自動化)できる。

##オブジェクト指向の目的
**オブジェクト指向の目的**は、人間が把握しきれない複雑さを克服するため、つまり**「ラクして、楽しく、良いもの」を作ること**が目的である。
保守性がどうとか、再利用が上がるとかそんな難しい言葉で言われても、オブジェクト指向触れたて、プログラマー初心者にはいまいちピンと来ない。
ただ、この「ラクして、楽しく、良いもの」を作ることができれ

元記事を表示

java:日付の加算[メモ書き]

基礎::java:日付の加算。
日付の加算などはjavaはCalendarを使う方が簡単?
phpにもnew DateTimeというものがある(javaにも在る)。

“`java:demojava/demo16/Demo16.java
package demojava.demo16;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Demo16 {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
Date now = new Date();
SimpleDateFormat sm = new SimpleDateFormat(“yyyy/MM/dd”);

System.out.println(sm.format(now));
for(int i = 0 ;i <= 31; i++){ c

元記事を表示

Java書式付き出力[メモ書き]

format基礎 どの言語でもココらへんは普遍的かもしれません。
Java書式付き出力メモ参考。
http://www.ne.jp/asahi/hishidama/home/tech/java/formatter.html

書式付き出力とは関係ないですが、メモリの事に関して取り扱い注意が必要。
javaだから安心ともいかないよう、メモ食いあり。

“`java:demojava/demo15/Demo15.java
package demojava.demo15;

public class Demo15 {
public static void main(String[] args) {
Integer abc = 123;
for(int i = 0 ; i <10 ; i++){ System.out.println(String.format("println = %0" + (i + abc.toString().length() + 1) +"d", abc)); System.out.format("format = %0" + (i + a

元記事を表示

JMeterでグラフィカルに変幻自在なアクセス負荷を設定する(前編)

# はじめに

JMeterは一般的にWebシステムに一定のアクセス負荷をかける試験ツールです。
通常機能ではアクセス負荷量の上げ下げが困難ですが、外部ライブラリ(Throughput Shaping Timer)を組み込むことでグラフィカルかつ簡単に実現できたので紹介します。

# Throughput Shaping Timer で実現できること

– 自由度の高いアクセス負荷の制御ができる
– 1台のJmeterで複数のスレッドグループ毎にアクセス負荷を制御できる
![sample_image](https://jmeter-plugins.org/img/wiki/throughput_shaping_timer1.png)
↑アクセス負荷量の制御イメージ 公式ページより

実際に負荷試験をする際に活用できるケースとして、以下のような例が当てはまると思います。

– 試験中に負荷量を定常量から急上昇(急降下)させてシステムの安定性を確認したい
– アクセス量に波があるシステムの試験をしたい
– スレッドグループ(アクセス導線)毎にきめ細やかな試験を同時に実施したい

アクセス負

元記事を表示

Mockitoと仲良くなろうとしたお話

# Mokitと仲良くなろうとしたお話
初投稿です。
皆さんは「Mockito」使っていますか?

業務でAndroid Studioを使用してアプリケーションを作成し、UnitTestを行う際にMockitoとケンカしたので、Mockitoと仲良くするため、そして自分の備忘録として投稿します。

# 使用環境
– macOS Catalina(10.15.6)
– Android Studio 4.0.1
– Android 9.0(sdk:28)
– Mockito Core 3.5.9
– Mockito Inline 3.5.9
– Robolectric 4.3.1

# Mockitoとケンカした部分について
作成していたアプリケーションはaidlでインターフェースの提供を受けており、サービスとのbindを行うアプリケーションでした。
初めはRobolectricの`ShadowApplication.setComponentNameAndServiceForBindService()`を使用してMock化したIBinderを渡していましたが、`IBinder.Stub.a

元記事を表示

mac vscodeでJava構築

https://qiita.com/aoyaman/items/fdbc1b35ce841f730afc

https://qiita.com/aoyaman/items/cd3ed987b8b704778144

元記事を表示

重複チェックロジックを書くにはどのようにすれば可読性が高くなるのか

重複しているか調べたいデータをList型で所持する。DBのレコードならSQLで取得してくる。
そのうえで例えば文字列の重複チェックなら、

“`Java:sample.java
String searchStr = ‘調べたい文字列’;
List dataList = ‘調べる対象のデータ’;

if(dataList.contains(searchStr)){
// 重複したときの処理

} else {
// 重複しなかったときの処理

}
“`
このように書くとあとで見たときにわかりやすいのではないだろうか。

元記事を表示

【Java】Java8から追加されたTime APIを使って10日後の日付を取得・表示

#今までのおさらい

#新しく追加されたTime APIを使用してみる

####新しく追加されたAPI

| クラス | 年 | 月 | 日 | 時間 | ゾーン | 用途 |
|:–|:-:|:-:|:-:|:-:|:-:|:–|
| ZonedDateTime | ○ | ○ | ○ | ○ | ○ | 厳密な日時情報 |
| LocalDateTime | ○ | ○ | ○ | ○ | X | 日常使う日時情報 |
| LocalDate | ○ |○ |○ | X | X |誕生日 |
| LocalTime | X | X | X | ○ | X | アラーム時刻など |
| Year | ○ | X | X | X | X | 著作発表年など |
| YearMonth | ○ | ○ | X | X | X | カード有効期限など |
| Month | X | ○ | X | X | X | 決算月など

元記事を表示

【自分用】JSPファイルとサーブレットクラスを使用したブラウザ表示

初めてJSPとサーブレットクラスの連結がうまくいったので記録。

【参考リンク】
・Html プルダウンメニューの表示について
(https://murashun.jp/blog/20200128-66.html)
・Html 複数行のテキスト入力フォーム作成
(http://www.htmq.com/html/textarea.shtml)

【JSPファイル】

“`java

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>




お問い合わせフォーム

<%--formを挿入する準備 --%>

<%--お名前入力タブ --%>
名前

元記事を表示

==とequals

コード作成時にちょっとしたミスを繰り返してしまうので
戒め的に備忘録として記事にします。

String型の変数のif文での確認で下記のミス

“`
<✕>
if(name == “minato”){
・・・処理
}

<〇>
if(name.equals(“minato”)){
・・・処理
}
“`

元記事を表示

OTHERカテゴリの最新記事