1
0

More than 3 years have passed since last update.

Java案件準備

Last updated at Posted at 2020-07-22

DB

用語

楽観ロック
悲観ロック
注 悲観ロックを行う場合は開発コストが高いので注意すること。

SQL

コンテンツ

シラバス
用語
TakeAway
参考書籍
早見表

シラバス

第1章:データベースとSQL
1-1. データベースとは
1-2. さまざまなデータベース
1-3. データベースサーバ
■第2章:テーブルからデータを取り出す
2-1. ハローワールドの実行
2-2. テーブル構造を参照する
2-3. 検索条件を付けて絞り込む
2-4. 条件を組み合わせる
2-5. LIKEによるパターン検索

■第3章:ソートと演算
3-1. 並べ替える ── ORDER BY
3-2. 複数の列を指定して並べ替える
3-3. 取得行を制限する ── LIMIT
3-4. 数値の演算
3-5. 文字列の演算
3-6. 日付の演算
3-7. CASE式でデータを変換する

■第4章:データの追加・削除・更新
4-1. 行を追加する ── INSERT
4-2. 行を削除する ── DELETE
4-3. データを更新する ── UPDATE
4-4. 物理削除と論理削除

■第5章:集計とサブクエリ
5-1. 行数を数える ── COUNT
5-2. COUNT以外の集約関数
5-3. グループ化する ── GROUP BY
5-4. サブクエリ
5-5. 相関サブクエリ

■第6章:データベースオブジェクトの作成と削除
6-1. データベースオブジェクト
6-2. テーブルの作成・削除・変更
6-3. 制約
6-4. インデックスのしくみ
6-5. インデックスの作成と削除
6-6. ビューの作成と削除

■第7章:複数のテーブルを扱う
7-1. 集合演算
7-2. テーブルの結合
7-3. リレーショナルモデル

■第8章:データベース設計
8-1. データベース設計
8-2. 正規化
8-3. トランザクション

用語

スカラ値

TAKEAWAY

日付の型
Oracle
https://qiita.com/ponsuke0531/items/57bc035f129922b1b0de
注 日付の型がきちんとしていないとINSERTできない。できても問題が・・・

0割回避
A few accounts have 0 for total, so I divided by (total + 0.01)

GROUP BY
Any column in the SELECT statement that is not within an aggregator must be in the GROUP BY clause.

The GROUP BY always goes between WHERE and ORDER BY.

実行順序
https://qiita.com/yurina0402/items/78ae1f536b6755d6221a

参考書籍

SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ) (日本語) 単行本(ソフトカバー) – 2016/6/17
ミック (著)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus) (日本語) 単行本(ソフトカバー) – 2015/3/3
朝井 淳 (著)

早見表

キーワード

Java
https://ja.wikipedia.org/wiki/Java
TypeScript
https://ja.wikipedia.org/wiki/TypeScript
Shell
JSP/Servlet
WebApi
Bash PL/SQL
SpringMVC
マルチスレッド
プロセス
RMI (Java Remote Method Invocation)
https://ja.wikipedia.org/wiki/Java_Remote_Method_Invocation
Rest(Representational State Transfer)
https://ja.wikipedia.org/wiki/Representational_State_Transfer

それってマルマルなんじゃない?

なんらかのバージョンの問題。

環境変数を設定していない。

CSSセレクタ指定時の記号の抜け

クラス→.
id→#

あれってなんだっけ?

JavaだとContinue

public class MyXpp {

  public static void main(String[] args) {
    // for
    // 0 - 9
    // break
    // continue
    for (int i = 0; i < 10; i++) {
      if (i == 5) {
        // break;
        continue;
      }
      System.out.println(i);
    }
  }

}

##配列で使うやり方
length
  // 配列
    // sales.length
    int[] sales = {700, 400, 500};

    // for (int i = 0; i < 3; i++) {
    // for (int i = 0; i < sales.length; i++) {
    //   System.out.println(sales[i]);
    // }

    for (int sale : sales) {
      System.out.println(sale);
    }
  }

  // コレクション
    // items.size()
    // items.get(i)

    List<String> items = new ArrayList<>();
    items.add("カッター");
    items.add("のり");
    items.add("ハサミ");

    for (int i = 0; i < items.size(); i++){
        System.out.println(items.get(i));
    }
        items.set(0, "付箋");
        items.remove(2);

    }

    Map<String, Integer> items = new HashMap<>();

    items.put("カッター", 100);
    items.put("のり", 200);
    items.put("ハサミ", 300);

    System.out.println(items.get("カッター")); 
    System.out.println(items.size()); 

    for (Map.Entry<String, Integer> item : items.entrySet()) {
      System.out.println(item.getKey() + ":" + item.getValue());
    }

    sales.put("カッター", 500);
    sales.remove("ハサミ");

    for (Map.Entry<String, Integer> item : items.entrySet()) {
      System.out.println(item.getKey() + ":" + item.getValue());
    }
  }

}

  LocalDateTime d = LocalDateTime.now();
    // LocalDateTime d = LocalDateTime.of(2018, 1, 1, 9, 9, 9);
    // LocalDateTime d = LocalDateTime.parse("2018-01-01T09:09:09");

    System.out.println(d.getYear());
    System.out.println(d.getMonth());
    System.out.println(d.getMonth().getValue());

    System.out.println(d.plusMonths(2).minusDays(3));

    DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy!MM!dd!");
    System.out.println(d.format(dtf));

コメント

Linux
# コメント

プロパティファイル
#コメント

SQL
-- コメント
/* コメント **/

Java
// (コメント)
/ **
コメント
*/

HTML
<!-- (コメント) -->
<!--
(コメント)
複数行
-->
CSS
/*
(コメント)
*/

JavaScript
下記アドレス参照
https://jsprimer.net/basic/comments/

環境作り

DockerにLinuxを入れる話
https://blauthree.hatenablog.com/entry/2019/07/13/000839

実コマンド

docker --version
docker pull centos
docker run -it -d --name centos centos
docker exec -it centos /bin/bash
yum install java-1.8.0-openjdk-devel
java -version

cheatSheet

https://programmingwithmosh.com/wp-content/uploads/2019/07/Java-Cheat-Sheet.pdf
注 windowsではエスケープシーケンスは¥
https://github.com/in28minutes/java-cheat-sheet

SpringBoot API

コンテンツ

用語
トラブルシューティング
参考
環境構築
Curl コマンド

用語

@RestController
@ResponseBody

トラブルシューティング

・アノテーションの抜け
・設定ファイルは?
 https://groupe-sii.github.io/cheat-sheets/spring/spring-boot/index.html
・起動クラス  HajibootRestApplication

参考アドレス
https://macchinetta.github.io/server-guideline-thymeleaf/current/ja/
https://spring.pleiades.io/guides/tutorials/bookmarks/

参考

はじめてのSpring Boot―スプリング・フレームワークで簡単Javaアプリ開発 (I・O BOOKS) 単行本 – 2016/9/1
槙 俊明 (著)

目次
第1章 「Spring Boot」とは(「Spring Framework」の歴史
「Spring Boot」とは
はじめての「Spring Boot」)
第2章 速習「Spring Framework」(「Spring Framework」によるDI
「Spring JDBC」によるDBアクセス
「Spring Data JPA」によるDBアクセス)
第3章 「Spring Boot」による「Webアプリ開発」(この章で作るアプリ
「REST Webサービス」の開発
「Thymeleaf」を使った、「画面のあるWebアプリ」の開発
「Flyway」で「DBマイグレーション」
「Spring Security」で「認証」「認可」を追加)
第4章 PaaS「Cloud Foundry」にデプロイ(「PaaS」(Platform as a Service)の重要性
「Cloud Foundry」とは
「Cloud Foundry CLI」のインストール
「Hello Worldアプリケーション」のデプロイ
「顧客管理システム」のデプロイ
「Spring Boot Actuator」で「アプリケーションの状態」を監視)
第5章 「Spring Boot」におけるテスト(「Hello World」アプリの結合テスト
「REST API」の結合テスト)
附録 ソフトのインストール方法

環境構築

・プロジェクト・エクスプローラーの中で右クリック>インポート>インポートを選択
・「既存Mavenプロジェクト」を選択
・「参照」ボタンから、ダウンロードしたフォルダーを選択します。
・【Mavenの更新方法】プロジェクトを右クリック>『Maven』>『プロジェクトの更新』を選択
・プロジェクト選択 → 実行 → SpringBootApplication

Curl コマンド

curl http://localhost:8080/api/customers -i -XGET
curl http://localhost:8080/api/customers/1 -i -XGET

curl -X POST -H "Content-Type: application/json" -d '{"firstName":"sensuikan1973", "lastName":"Nobi"}' localhost:8080/api/customers/

curl -X PUT -H "Content-Type: application/json" -d '{"firstName":"sensuikan1973", "lastName":"Nobi"}' localhost:8080/api/customers/1

curl http://localhost:8080/api/customers/4 -i -XDELETE

Postmanノート 1

GET localhost:8080/api/customers/

GET localhost:8080/api/customers/5

POST localhost:8080/api/customers/ 

注意点:Body JSON
{"firstName":"sensuikan1973", "lastName":"ttttt"}

PUT localhost:8080/api/customers/1

注意点:Body JSON
{"firstName":"00000000", "lastName":"ttttt"}
DELETE localhost:8080/api/customers/1

Postmanノート 2

http://localhost:8080/rest/get/

http://localhost:8080/rest/get/yamada@xxx.co.jp

上記は画面で確認

POST http://localhost:8080/rest/insert

注意点:Body JSON
{"userId":"tamura@co.jp",
"password":"7777",
"userName":"tamura",
"birthday":"1986-11-05",
"age":"31",
"marriage":"false",
"role":"ROLE_ADMIN" }

PUT http://localhost:8080/rest/update

注意点:Body JSON
{"userId":"tamura@co.jp",
"password":"7777",
"userName":"tamura888",
"birthday":"1986-11-05",
"age":"31",
"marriage":"false",
"role":"ROLE_ADMIN" }

DELETE http://localhost:8080/rest/delete/tamura@co.jp

Java

用語

参照型
基本型
ディフォルトコンストラクタ

シラバス

01 Javaを使ってみよう
概要
公式サイト
必要となる知識
レッスンにおける環境
OpenJDKのインストール

02 Javaが動作する原理を理解しよう
Javaが動作する原理
JDK
JRE, JVM

03 はじめてのJavaプログラム
MyApp.java
コンパイル
実行
コメントの書き方

04 変数を使ってみよう
変数の宣言
値の代入
動作確認

05 さまざまなデータ型を使おう
文字
整数
浮動小数点数
文字列
特殊文字

06 データの演算をしてみよう
数値の演算
文字列の連結

07 データ型の変換をしてみよう
キャスト
動作確認

08 ifで条件分岐をしてみよう
if ... else if ... else ...
比較演算子
論理演算子
条件演算子

09 switchで条件分岐をしてみよう
switch

10 whileで繰り返し処理をしてみよう
while
do ... while

11 forで繰り返し処理をしてみよう
for
break
continue

12 配列を使ってみよう
配列の宣言
要素へのアクセス

13 配列の要素を操作してみよう
forとの組み合わせ
length

14 データ型とメモリの関係を理解しよう
基本データ型
参照型
メモリの使い方

15 基本データ型と参照型を理解しよう
挙動の違い
文字列型に関する注意事項

16 メソッドを使ってみよう
メソッドの作り方
メソッドの使い方

17 メソッドをオーバーロードしてみよう
変数の有効範囲
メソッドのオーバーロード

18 クラスを使ってみよう
クラスの作り方
インスタンスの作り方
動作確認

19 コンストラクタを使ってみよう
コンストラクタ
コンストラクタのオーバーロード
this()

20 クラスを継承してみよう
クラスの継承
super()
メソッドのオーバーライド
アノテーション

21 パッケージとアクセス権を理解しよう
パッケージ
アクセス修飾子

22 パッケージを使ってみよう
パッケージへの分類

23 パッケージをコンパイルしてみよう
import
コンパイル
実行

24 getter、setterを使ってみよう
getter
setter

25 static修飾子を使ってみよう
static修飾子
クラス変数
クラス・メソッド

26 イニシャライザを使ってみよう
staticイニシャライザ
インスタンスイニシャライザ

27 final修飾子を使ってみよう
final修飾子

28 抽象クラスを使ってみよう
抽象クラス
抽象メソッド

29 インターフェースを作ってみよう
インターフェースの作り方
インターフェースの使い方

30 列挙型を作ってみよう
列挙型の作り方
列挙型の使い方

31 例外処理を扱ってみよう
例外処理
try ... catch ... finally ...
動作確認

32 ラッパークラスを使ってみよう
ラッパークラス
相互変換の方法

33 ジェネリクスを使ってみよう
ジェネリクス
動作確認

34 スレッド処理を実装してみよう
スレッドの作り方
スレッドの実行方法
Runnableインターフェース

35 無名クラス、ラムダ式を使おう
無名クラス
関数型インターフェース
ラムダ式

36 Stringクラスを使ってみよう
Stringクラスのメソッド
文字列の比較

37 printfメソッドを使ってみよう
printf()
String.format()

38 Math、Randomクラスを使おう
Mathクラス
Randomクラス

39 ArrayListを使ってみよう
ArrayList
LinkedList

40 HashSetを使ってみよう
HashSet
TreeSet
LinkedHashSet

41 HashMapを使ってみよう
HashMap
TreeMap
LinkedHashMap

42 Stream APIを使ってみよう
stream()
filter()
map()
forEach()

43 LocalDateTimeクラスを使ってみよう
LocalDateTimeクラス

用語

For
For-each

length 配列で使用
size ArrayListで使用

TakeAway

抽象クラス

// 抽象クラス -> 具象クラス
abstract class User {
public abstract void sayHi(); // 抽象メソッド
}

class JapaneseUser extends User {
@Override
public void sayHi() {
System.out.println("こんにちは!");
}
}

ArrayList

Java8以降の日付

ラムダ式の話

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0