#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
朝井 淳 (著)
##早見表
https://cdn.sqltutorial.org/wp-content/uploads/2016/04/SQL-cheat-sheet.pdf
#キーワード
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
#それってマルマルなんじゃない?
なんらかのバージョンの問題。
##環境変数を設定していない。
https://www.javadrive.jp/start/install/index4.html
##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
https://www.w3schools.com/java/java_arraylist.asp
###Java8以降の日付
https://qiita.com/tag1216/items/91a471b33f383981bfaa
###ラムダ式の話
https://qiita.com/kuryus/items/820bdf48cc341a6445f0