狠狠撸
Submit Search
MyBatis を利用した web application 開発についてのこ?紹介
?
5 likes
?
12,911 views
Tokuhiro Matsuno
Follow
https://jjug.doorkeeper.jp/events/63161
Read less
Read more
1 of 39
Download now
Download to read offline
More Related Content
MyBatis を利用した web application 開発についてのこ?紹介
1.
MyBatis を利利?用した Web Application
開発についてのご 紹介 LINE Corp. Service Dev. 1 Tokuhiro Matsuno
2.
?自?己紹介 ? LINE Corp
Service Dev.1 ? ?高トラフィックの B2C の?自社ウェブサービスを開発する ことを?生業としている ? 最近はなぜか広告事業をやっています。 ? 広告案件でももちろん MyBatis を利利?用しています。
3.
MyBatis? ? 永続化フレームワーク for
Java
4.
どう動く? ? SQL は直接書く ?
それを interface 通じて呼び出す → java.lang.re?ect.Proxy で処理理する ? 結果を Bean に Mapping する
7.
どんなスキーマでも使える ? 主キーがなくても?大丈夫 ? もともと
MyBatis 前提で設計されてない DB でも?大丈夫 ? サブクエリなどの複雑なクエリも簡単に使えます ? 複雑なクエリそのものが?大変
8.
完全に DB 製品に依 存します
9.
発?行行されるクエリが?人間 に読みやすいので便便利利
10.
N+1 問題がそもそも起きない (?手で書いているので)
11.
3つの書き?方 ? Mapper XML:
XML で記述 ? Annotation: アノテーションで記述 ? Statement builder: Java DSL で記述
12.
1. Mapper XML
13.
名前はビーンのフィールド名または -parameters または
@Param から取得
14.
Java8 以後は -parameters
オプションで不不要
17.
Usage String resource =
"mybatis-con?g.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
18.
実?行行 try (SqlSession session
= sqlSessionFactory.openSession()) { BlogMapper mapper = session.getMapper(BlogMapper.class); Blog blog = mapper.?ndById(101); System.out.println(blog); }
19.
2. Annotation
21.
クエリ埋め込んだら読みづらい?
22.
3. Statement builder
24.
LINE 社内での利利?用?比率 27% 73% XML Annotation Statement
builder
25.
@Select("SELECT *" + "
FROM blog" + " id=#{id}") Blog findById(long id);
26.
Annotation の?言語別シェア 1% 4% 95% Java Kotlin
Groovy
27.
Kotlin fun findById(id: Long):
List<Blog> Groovy Blog findById(long id) Java Blog findById(long id);
28.
LINE社社内での直近動向 ? Mapper XML
→ 継続して利利?用されている ? Annotation → Groovy or kotlin の利利?用が活発 ? 複数?行行?文字列列に対応している ? Statement builder → ほとんど利利?用されていない
29.
Spring support ? Spring
boot のサポートが?手厚いです ?
35.
MyBatis の利利点 ? SQL
が直接書いてある → 短期的に開発効率がすごくいいわけではない → コードレビューが容易易 → スロークエリのリカバリが容易易
36.
MyBatis の利利点(2) ? ドキュメントが充実している
37.
MyBatis の利利点(3)
38.
MyBatis の利利点(4) ? コードがシンプル ?
挙動がわかりにくい点があっても、Debugger で追いやす い
39.
MyBatis の?欠点 ? XML,
Statement builder, Annotation をサポート → Annotation で書く?人にとっては XML 記法前提で説明が 書かれていて、ドキュメントがちょっと読みにくい
Download