Submit Search
Upload
MyBatisとMyBatis Generatorの話
•
0 likes
•
294 views
T
tekuragari
Follow
このイベントの発表資料 https://javado.connpass.com/event/300918/
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 19
Download now
Download to read offline
Recommended
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for Django
Takayuki Shimizukawa
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
Koichiro Matsuoka
なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景
Tatsuo Kudo
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
@yuzutas0 Yokoyama
ADRという考えを取り入れてみて
ADRという考えを取り入れてみて
infinite_loop
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
DBワークロードのAWS化とデータベースサービス関連最新情報
DBワークロードのAWS化とデータベースサービス関連最新情報
Amazon Web Services Japan
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
都元ダイスケ Miyamoto
Recommended
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for Django
Takayuki Shimizukawa
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
Koichiro Matsuoka
なぜOpenID Connectが必要となったのか、その歴史的背景
なぜOpenID Connectが必要となったのか、その歴史的背景
Tatsuo Kudo
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
Jupyter(Python)とBigQueryによるデータ分析基盤のDevOps #pyconjp
@yuzutas0 Yokoyama
ADRという考えを取り入れてみて
ADRという考えを取り入れてみて
infinite_loop
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
DBワークロードのAWS化とデータベースサービス関連最新情報
DBワークロードのAWS化とデータベースサービス関連最新情報
Amazon Web Services Japan
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
都元ダイスケ Miyamoto
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
infinite_loop
ログ管理のベストプラクティス
ログ管理のベストプラクティス
Akihiro Kuwano
Metaspace
Metaspace
Yasumasa Suenaga
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
NAVER Engineering
Apache NiFi の紹介 #streamctjp
Apache NiFi の紹介 #streamctjp
Yahoo!デベロッパーネットワーク
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
虎の穴 開発室
BigQuery Query Optimization クエリ高速化編
BigQuery Query Optimization クエリ高速化編
sutepoi
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance Comparison
Seungmo Koo
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
MvcのFatモデルに立ち向かう
MvcのFatモデルに立ち向かう
Shun Hikita
Mavenの真実とウソ
Mavenの真実とウソ
Yoshitaka Kawashima
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
Yoshiki Nakagawa
SQLアンチパターン読書会 4章 キーレスエンエントリ(外部キー嫌い)
SQLアンチパターン読書会 4章 キーレスエンエントリ(外部キー嫌い)
makopi 23
Rest ful api設計入門
Rest ful api設計入門
Monstar Lab Inc.
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
Esun Kim
SQLアンチパターン読書会 15章 ランダムセレクション 説明資料
SQLアンチパターン読書会 15章 ランダムセレクション 説明資料
Nao Yamamoto
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
BLEラジコン基板でIoTしてみた
BLEラジコン基板でIoTしてみた
Bizan Nishimura
Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)
shojiro-tanaka
More Related Content
What's hot
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
infinite_loop
ログ管理のベストプラクティス
ログ管理のベストプラクティス
Akihiro Kuwano
Metaspace
Metaspace
Yasumasa Suenaga
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
NAVER Engineering
Apache NiFi の紹介 #streamctjp
Apache NiFi の紹介 #streamctjp
Yahoo!デベロッパーネットワーク
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
虎の穴 開発室
BigQuery Query Optimization クエリ高速化編
BigQuery Query Optimization クエリ高速化編
sutepoi
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance Comparison
Seungmo Koo
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
MvcのFatモデルに立ち向かう
MvcのFatモデルに立ち向かう
Shun Hikita
Mavenの真実とウソ
Mavenの真実とウソ
Yoshitaka Kawashima
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
Yoshiki Nakagawa
SQLアンチパターン読書会 4章 キーレスエンエントリ(外部キー嫌い)
SQLアンチパターン読書会 4章 キーレスエンエントリ(外部キー嫌い)
makopi 23
Rest ful api設計入門
Rest ful api設計入門
Monstar Lab Inc.
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
Esun Kim
SQLアンチパターン読書会 15章 ランダムセレクション 説明資料
SQLアンチパターン読書会 15章 ランダムセレクション 説明資料
Nao Yamamoto
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
増田 亨
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
What's hot
(20)
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
ログ管理のベストプラクティス
ログ管理のベストプラクティス
Metaspace
Metaspace
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
[네이버오픈소스세미나] Next Generation Spring Security OAuth2.0 - 이명현
Apache NiFi の紹介 #streamctjp
Apache NiFi の紹介 #streamctjp
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
【とらのあなラボ Tech Day #3】新規システムにおける技術選定〜GoとgRPCを採用した話〜
BigQuery Query Optimization クエリ高速化編
BigQuery Query Optimization クエリ高速化編
PostgreSQLアンチパターン
PostgreSQLアンチパターン
Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance Comparison
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
MvcのFatモデルに立ち向かう
MvcのFatモデルに立ち向かう
Mavenの真実とウソ
Mavenの真実とウソ
マルチテナントのアプリケーション実装〜実践編〜
マルチテナントのアプリケーション実装〜実践編〜
SQLアンチパターン読書会 4章 キーレスエンエントリ(外部キー嫌い)
SQLアンチパターン読書会 4章 キーレスエンエントリ(外部キー嫌い)
Rest ful api設計入門
Rest ful api設計入門
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
자동화된 소스 분석, 처리, 검증을 통한 소스의 불필요한 #if - #endif 제거하기 NDC2012
SQLアンチパターン読書会 15章 ランダムセレクション 説明資料
SQLアンチパターン読書会 15章 ランダムセレクション 説明資料
ドメイン駆動設計のための Spring の上手な使い方
ドメイン駆動設計のための Spring の上手な使い方
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
Similar to MyBatisとMyBatis Generatorの話
BLEラジコン基板でIoTしてみた
BLEラジコン基板でIoTしてみた
Bizan Nishimura
Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)
shojiro-tanaka
Iotlt 28 HoloLensに日本語聞いてもらいたい
Iotlt 28 HoloLensに日本語聞いてもらいたい
Masaki Yamamoto
ビットバンク流 アジャイル開発の紹介.pdf
ビットバンク流 アジャイル開発の紹介.pdf
bitbank, Inc. Tokyo, Japan
デジタルゲームにおける学習の応用
デジタルゲームにおける学習の応用
Youichiro Miyake
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
Yoshitaka Seo
某社のDB運用周りあれこれ
某社のDB運用周りあれこれ
lhfukamachi 深町
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
Yohei Sasaki
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
Satoshi Takami
Power Appsで Excel関数を利用する3つの方法
Power Appsで Excel関数を利用する3つの方法
Nagao Hiroaki
Do you wanna be a V-ROCK star?
Do you wanna be a V-ROCK star?
Yugo Shimizu
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
normalian
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Atsushi Nakamura
Visual Studio 2010で楽しくデバッグ
Visual Studio 2010で楽しくデバッグ
Kazushi Kamegawa
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
Similar to MyBatisとMyBatis Generatorの話
(15)
BLEラジコン基板でIoTしてみた
BLEラジコン基板でIoTしてみた
Cloud impact on IT industry (in Japanese)
Cloud impact on IT industry (in Japanese)
Iotlt 28 HoloLensに日本語聞いてもらいたい
Iotlt 28 HoloLensに日本語聞いてもらいたい
ビットバンク流 アジャイル開発の紹介.pdf
ビットバンク流 アジャイル開発の紹介.pdf
デジタルゲームにおける学習の応用
デジタルゲームにおける学習の応用
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
某社のDB運用周りあれこれ
某社のDB運用周りあれこれ
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
Power Appsで Excel関数を利用する3つの方法
Power Appsで Excel関数を利用する3つの方法
Do you wanna be a V-ROCK star?
Do you wanna be a V-ROCK star?
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Visual Studio 2010で楽しくデバッグ
Visual Studio 2010で楽しくデバッグ
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
MyBatisとMyBatis Generatorの話
1.
MyBatisとMyBatis Generatorの話 Java Do
2023/11/18(土) DE-TEIU(@de_teiu_tkg) MyBatisとMyBatis Generatorの話 Java Do 2023/11/18
2.
自己紹介 名前 : DE-TEIU(Twitter(新𝕏):
@de_teiu_tkg) 趣味 : クソアプリ開発、麻雀 サイト: Uselesscode 最近作ったもの:サ麻雀ボ MyBatisとMyBatis Generatorの話 Java Do 2023/11/18 2
3.
Javaでアプリ作ってる時... DBアクセスどうやってます?? JDBC ORマッパー 主にこの2つかな? MyBatisとMyBatis Generatorの話 Java Do
2023/11/18 3
4.
JDBC DBとのコネクション確立、SQLの実行、コミット、切断まで全部自 分で注意して実装しないといけない SQLの実行結果をエンティティに詰め直すのが面倒 これは結構大変。あまりやりたくない MyBatisとMyBatis Generatorの話 Java Do
2023/11/18 4
5.
ORマッパー (超ざっくり) 2種類に分けられる。 1. DBとのコネクションの管理や、エンティティの詰め直しとかをや ってくれる。実行させるSQLは自分で用意するタイプ 2.
SQLすらも自分で書かなくて良いタイプ (厳密にはJDBCラッパー、SQLマッパー、クエリビルダー、(狭義)OR マッパー、みたいな分かれ方をするとか) MyBatisとMyBatis Generatorの話 Java Do 2023/11/18 5
6.
SQLを自分で書くタイプ ちなみに後で紹介するMyBatisはこれに該当する。 メリット SQLさえ書ければどうとでも実装できる。チューニングもやり放題 デメリット SQLを用意するのが面倒 ちょっと油断すると似たようなSQLを大量生産することになる MyBatisとMyBatis Generatorの話 Java Do
2023/11/18 6
7.
SQLを自分で書かないタイプ メリット そのORマッパーの仕様に則った書き方で、Javaのメソッドを呼ぶ だけでSQLを実行できる 簡単なCRUDだったら一瞬で実装できる SQLを書いたことが無くても(一応)使える MyBatisとMyBatis Generatorの話 Java Do
2023/11/18 7
8.
SQLを自分で書かないタイプ デメリット 複雑なSQLを実行しようとすると大変(結合するとか集計するとか) 下手に実装すると気づかぬうちにN+1問題が発生することも チューニングもやりにくい そのORマッパー固有の書き方とかを覚える必要あり 元々SQLを書ける人にとっては、かえってやりにくい説 MyBatisとMyBatis Generatorの話 Java Do
2023/11/18 8
9.
結局どっちが良いの 個人的にはSQLを自分で書くタイプのORマッパーの方が好み。 SQLの書き方を学んでおいた方が色んな所で応用が効く ソースコードからSQLの部分だけ引っこ抜いてDBクライアントに貼 り付けて実行、とかもできる MyBatisとMyBatis Generatorの話 Java Do
2023/11/18 9
10.
ということで、MyBatisの話 XMLファイルにSQLを記述するタイプのORマッパー。 MyBatisとMyBatis Generatorの話 Java Do
2023/11/18 10
11.
XMLに対応するMapperインタフェースを定義しておけば、いい感じ にマッピングしてくれる MyBatisとMyBatis Generatorの話 Java Do
2023/11/18 11
12.
SQLはある程度動的に生成させられる。例えばこう Java側のロジックからパラメータとして渡された"title"が nullじゃない時のみ、Where句に AND title
like 'title' の条件が追加さ れる MyBatisとMyBatis Generatorの話 Java Do 2023/11/18 12
13.
デメリット XMLなので一部の記号はちゃんとエスケープしないといけない ">" → ">" "<"
→ "<" など。あとSQLを<![CDATA[]]> で囲う手もある。 似たようなSQLが大量生産されがち チームで中長期的にアプリを改修していくと、いつの間にかほぼ同 じ内容のSQLが色んな箇所に実装されてしまったりする (これは開発体制の問題でもあるが) MyBatisとMyBatis Generatorの話 Java Do 2023/11/18 13
14.
デメリット 単純なCRUD文まで全部自力で用意しないといけない。 ただのINSERT文とか、主キーを指定して1件取ってくるだけのよく あるSELECT文とか。めんどくさい。 対策 MyBatis Generatorを使ってみよう。 MyBatisとMyBatis Generatorの話 Java
Do 2023/11/18 14
15.
MyBatis Generatorとは MyBatisでDBアクセスする際に必要な以下の部品を、DBスキーマの テーブル定義から自動生成してくれるツール。 Mapperインタフェース(Java) Entityクラス(Java) Mapper(Xml) これらの部品の中には、各テーブルに対する基本的なCRUDを行う処 理が丸ごと入っている MyBatisとMyBatis Generatorの話 Java
Do 2023/11/18 15
16.
ということでデモをやる MyBatisとMyBatis Generatorの話 Java Do
2023/11/18 16
17.
MyBatis Generatorを使うメリット SQLを書く作業が減る Where句をある程度動的に設定できるため、似たようなSQLの大量 発生を多少防げる 自前でSQLを書いても良い SQLを書く/書かないタイプのORマッパーの良いとこ取りができる! MyBatisとMyBatis Generatorの話 Java
Do 2023/11/18 17
18.
まとめ ORマッパーにはSQLを書くタイプと書かないタイプがある MyBatisはSQLを書くタイプ しかしMyBatis Generatorを使うと必要最低限のSQLを自動生成で きる あとおすすめのORマッパーがあったらぜひ教えてください MyBatisとMyBatis Generatorの話 Java
Do 2023/11/18 18
19.
参考文献 Java ORマッパー選定のポイント #jsug
| ドクセル MyBatis Generatorの導入手順 #Java - Qiita デモのソースコード https://github.com/de-teiu/javado202311 MyBatisとMyBatis Generatorの話 Java Do 2023/11/18 19
Download now