【Console Application】ファイルとデータベース【学習記】
ファイルとかデータベースの話🤤
→ Kotlin + SQLite はやり方が出てこない(または何か混在)
→ Java での方法は出てくるので jar を Kotlin で使えば解決?
→ Swift はそういうライブラリが有るっぽい
→ OC はかなり原始的なやりかたっぽく既存の .dylib を叩くだけの方式かも
→ system() 使用もやむなし?
#学習記 #SQLite
#Kotlin #Java #Swift #Objective_C
ファイルとか DB とか
ファイルやって DB かなって思ったんだけど、欲張りセットで同時進行しようかな🤪
課題とかでどうせ住所録やるだろうから独自の DB を作ろうね🤤
題して
_人人人人人_
> ランプ <
> 管理DB <
 ̄Y^Y^Y^Y^ ̄
どんな機能を作るのか
こんな予定🤤
・コマンドライン
・ csv を指定して DB を更新する
・ csv はバッチ情報の代わり
・ csv に DB の内容を出力できる
これによりファイルと DB を一変にやろうって腹積もり🤪
コマンドラインにして本当は入力を付けたら「コンソール入力も学習できるね!」だったんだろうけど helloWorld で名前入れてねを付けちゃったし独自 readLine 作っちゃったくらいなので入力機能自体省略🤤
作るに当たって行う省略
・レコード情報などは専用で汎用性はゼロ
・当然拡張性もゼロ
・その分、工期を短縮(できるといいな🤪
いつも作る時は「どうせなら使いそうなもの、後でも使えそう」なのをこしらえるけど型判別の時同様、完全に学習用に「簡素」に作るのを課題に組み込んでおこうと思う🤤
そもそも「ランプ」って?
音ゲーのクリアマークの事🤤
今はスコアやランプを管理するためのサイトはあちこちあるので完全にイマサラなんだけど DB 学習素材として連絡帳以外で簡素な造りのネタって割と少ないのよね🙄
まぁ、単純にネタ扱いなので参考にするために見に来た人が「いいやおれは連絡帳で作る!」っていうのは誰も止めない🤤
仕様
レコード
・レベル : 1-12
・難易度 : b,n,h,a,l
・曲名
・ランプ : -,x,a,e,c,h,e,f
オプションスイッチ
-u file.csv # 更新(略値)
ファイル名だけ指定した場合更新処理と見做す
-d file.csv # 削除
-p # csv 出力(略値)
何も指定せずに起動した場合出力処理と見做す
-v # バージョン
-h # ヘルプ
各言語の DB 接続
まず手元の教材 Kotlin から。
やり方は載っているけど果たして一般的な物なのか判らないので調査して同じである事をまず確認しようかな🤤
Kotlin での方法を探してて先に Java が見つかる等🙄
まぁいいんだけどw
とりあえずこの jdbc ドライバとやらを落としとこ🤤
…
…
…
Android の話ばっかで邪魔だなこれ…😞
今、 Android での話はしてないのよ…(そのうちやるだろうけど
…
…
…
この jdbc をそのまま Kotlin で使えって事なのかな…?🤔
手元の学習のでも jdbc 云々とある。でもやり方がこの jar を落としてくるのではないのよね…🙄
………
検索で出てくるハンズオンとかいう本が似た様な事をしているけど本の一部しか出てないのでこれだけだと作成が進まない😞
…
…
…
もう教則のままやっちゃお。こんなとこで時間使ってもしょうがない😞
そうすると Swift とかかなり不安だなぁ🙄
不安虚しく、とても導入しやすいシロモノだった模様🙄
じゃぁ残った OC は…
埋め込みやスマホアプリ用の話…🤤
そのうち使う可能性のある話だけど今はこれじゃない…😞
…
…
…
なんか機械翻訳が検索にかかるようになって凄い探しにくいけど悪くはなくなってきたのかな?🤔
FMDB とかいうのを調べれば良いんだろうか?🙄
windows では dll が有ってあれこれできるようだけど mac はそこまで熟れてないから似た様な事できるか怪しい…
というか mac は標準でコマンドラインから使えるので究極的には NSTask とか system() とか exec() とか…🤪
一応もうちょっと探そうかな…🙄
………
FMDB とやらも結局 iOS で使う為のナニガシカでコマンドラインツールで使えるやつを呼ぶ様なモノでは無いっぽい🙄
DBManager だって?🤔
…
…
…
iOS 用の話とかしか出てこない😞
…
…
…
なんか↑の「Objective-C でデータベースファイル(SQLite)を操作する」の方法見てるとヘッダを取り込んで独自のクラスを生成してるから windows でソースから .lib 作って .h 取り込んで、とやってる事が一緒っぽい🤔
という事はそもそも .h が有るのかな、きっと🤤
次回は
余り良くないけど DB 部分を後で作る事にして SELECT や UPDATE を投げるとこまで作っちゃってから DB 接続テストする感じになるかな🤔
これ、技術的にできないって判ったらプロジェクト破綻するやり方だからほんとはダメなのよね😞
でも SQL を投げる、という挙動については接続できようができまいが書かなければならない部分なので DB 操作だけ後回しでも成り立つといえば成り立つ筈🤔
OC や Swift は OS が最初から持ってるから最悪コマンドラインを中から呼べばできちゃうわけだし🤪