JUnitで使用可能なアノテーションの種類についてまとめておきます。
環境
JUnit 4.10で使用できるアノテーション
アノテーション | 用途 |
@Before | メソッド単位で事前実行する |
@BeforeClass | テストクラスで一回だけ事前実行 |
@After | メソッド単位で事後実行する |
@AfterClass | テストクラスで一回だけ事後実行 |
@Rule | テスト時における一時的なルールの作成 |
@ClassRule | 複数のテストを通じてのルール設定 |
@Test | テストメソッドの指定 |
@Ignore | 一時的にテスト対象外メソッドを指定 |
SQLでテーブルのレコード数を取得する方法をご紹介します。
サンプルテーブル
以下の商品テーブル「goods」を元に説明します。
商品テーブル「goods」 |
|
単純なレコード件数の取得
SQL
SQLは
「SELECT COUNT(*) FROM [テーブル名];」形式で記述します。
|
SELECT COUNT(*) FROM goods; |
実行結果
重複データを除いたレコード件数の取得
SQL
重複データを除いて取得する場合、SQLは
「SELECT COUNT(DISTINCT [列名]) FROM [テーブル名];」形式で記述します。
|
SELECT COUNT(DISTINCT type_code) FROM goods; |
実行結果
業務でSQLを使用する場合、必ず使用する事になると言って良いのがテーブルの結合処理です。WEB系システムの場合、そのほとんどはRDBMSを使用してますのでテーブルが一つだけなどという事はまずありえません。複数のテーブルからその時々に応じて必要なデータを取得し使用するのが常です。その際に重要になるポイントの一つが内部結合と外部結合です。
サンプルテーブル
以下の商品テーブル「goods」と属性コードテーブル「type_code」を元に説明します。
商品テーブル「goods」 | 属性コードテーブル「type_code」 |
| |
内部結合とは
- 2つのテーブルで一致したデータ行のみ取得します。
- SQLは「SELECT * FROM [テーブル名1] INNER JOIN [テーブル名2] ON [結合条件]」形式で記載します。
- サンプルSQL
|
SELECT goods.type_code, goods.name, type_code.code_name FROM goods INNER JOIN type_code ON goods.type_code = type_code.code; |
サンプルSQLの実行結果
外部結合とは
- 2つのテーブルで一致しないデータも含めてどちらか一方のテーブルのデータを全て取得します。
- SQLは左外部結合の場合、「SELECT * FROM [テーブル名1] LEFT OUTER JOIN [テーブル名2] ON [結合条件]」形式で記載します。
- SQLは右外部結合の場合、「SELECT * FROM [テーブル名1] RIGHT OUTER JOIN [テーブル名2] ON [結合条件]」形式で記載します。
- サンプルSQL(左外部結合の場合)
|
SELECT goods.type_code, goods.name, type_code.code_name FROM goods LEFT OUTER JOIN type_code ON goods.type_code = type_code.code; |
サンプルSQLの実行結果
このサイトにも記事を書く際に画像を添付する事が多いのですが、「画像の形式ってjpgとpngどっちがいいんだろう・・・」と思いながらも適当に使っていたのでその辺を整理しておこうと思います。他にはgifなどもありますが今はあまり使用される事は少ないでしょうからjpgとpngについてのみまとめておきます。
jpgの特徴
- 写真やグラデーションのある画像など色数が多い画像の場合の保存に適しています。
- 透明/半透明の画像は扱えません。
- 高画質でファイルサイズが小さくなります。
- 画質が必ず劣化します。
pngの特徴
- PC画面のキャプチャやイラストなど色数が少ない画像の場合の保存に適しています。
- 透明/半透明の画像が扱えます
- ファイルサイズが大きくなりやすい。ただしキャプチャなどのシンプルな画像の場合はjpgよりファイルサイズが小さくなります。
- 画質が全く劣化しません。
SQLを理解する上で記載する各句の実行順序を理解している事はとても重要な事です。この辺の知識がおろそかになっていると複雑なSQLを書く場合や作成したSQLのパファーマンスに問題が発生した場合、他人か作成したSQLの修正などの対応に苦慮する事になるからです(はい私の事です)。逆に各句の実行順序を正しく理解していれば複雑なSQLもスラスラ書けるようになっていきます。
では今回は「SELECT文の各句の実行順番について」まとめておきます。
SELECT文で指定可能な句
SELECT文での指定順序で記載すると以下の様になります。
- SELECT句
- FROM句
- WHERE句
- GROUP BY句
- HAVING句
- ORDER BY句
SELECT文で指定可能な句の実行順序
上記の句を実際に実行される順序に並び替えると以下の様になります。
- FROM句
- WHERE句
- GROUP BY句
- HAVING句
- SELECT句
- ORDER BY句
Web系の開発していると画面表示確認する際に、「cssやjsは変更したのに画面を表示してみると反映されていない」という事を経験した方は少なくないと思います。
こういう場合はまず、F5もしくはctrl+F5を押下して画面を再表示(リロード)確認すると思いますが、そもそも「F5単独」押下と「ctrl+F5同時」押下では何が違うんだろう?という事についてメモしておきます。
F5単独押下時のリロード
- ブラウザでキャッシュされている場合、キャッシュを利用して画面を再表示します。
Ctrl+F5同時押下時のリロード
- ブラウザのキャッシュを利用せずにサーバーにある最新の情報を読み込んで画面を再表示します。
- スーパーリロードとも呼びます
- ブラウザによって、Ctrl + F5以外でもスーパーリロードは可能です。
ブラウザ別のスーパーリロード方法
<Google Chrome、Microsoft Edge>
- Ctrl + F5
- Shift + F5
- Ctrl + Shift + R
- Ctrl + 更新ボタン
- Shift + 更新ボタン
<FireFox>
- Ctrl + F5
- Ctrl + Shift + R
- Shift + 更新ボタン
<Opera>
<Safari>
ブラウザの更新ボタンとは
上記で説明している「更新ボタン」ですが、以下の様にブラウザのアドレスバー付近に表示されている以下のような赤枠内のボタンのことを「更新ボタン」と記載しております。
junitでexceptionが発生した事の確認テストはどのようにすれば良いかメモしておきます。
exceptionの発生確認は@Test内に「(expected = [確認したいExceptionクラス])」を指定する事で簡単に確認する事が出来ます。
JUnitサンプル
「駑馬十駕」 IT系情報を中心に調べた事をコツコツ綴っています。