MyBatisインターセプターによるパラメータオブジェクトのプロパティ設定

MyBatisのmapper.xmlファイルでは、#{}や${}を使用してパラメータを取得します。これらのパラメータは事前にmapper.javaインターフェースファイルで指定する必要があります。 パラメータを拡張するためには、MyBatisがどのようにmapper.javaからパラメータを受け取っているか理解することが重要です。 Executor.javaインターフェースのqueryメソッドを覗くと、最初の引数で ...

6月28日 20:15 投稿

Javaデータベース接続(JDBC)入門

JDBCとは JDBC(Java Database Connection)は、Javaアプリケーションからデータベースにアクセスするための標準APIです。このAPIを使用することで、さまざまなデータベース製品に対して統一された方法で接続や操作を行うことができます。 本稿では、JDBCの基本的な使用方法について、コード例を交えながら解説します。 接続前の準備 JDBCを使用するには、使用するデータベ ...

6月27日 00:49 投稿

OracleのLEFT JOINを使用したクエリでCASE WHENが正しく評価されない問題

問題の概要 OracleでLEFT JOINを使用して関連付けたテーブルに対し、CASE WHEN式を用いた条件分岐が期待通りに動作しない場合があります。本稿では、具体的なクエリ例を基にこの現象について説明します。 問題のあるクエリ例 以下のクエリは、現金移動テーブル(RP_CASH_MOVEMENT)と台帳アイテムテーブル(RP_LEDGER_ITEM)をLEFT JOINで結合し、集計結果を判定してい ...

6月25日 18:33 投稿

SQL自己結合の仕組みと実践的な使い方

自己結合(Self-Join)とは、同じテーブルを2回参照し、それぞれに別名(エイリアス)を付けて結合する手法です。テーブルの構造とデータは同一ですが、別のインスタンスとして扱うことで、同一テーブル内の行同士を比較・組み合わせることが可能になります。 基本例:無条件の自己結合 まず、以下のような生徒テーブル Students を考えます。 -- Students テーブル Name ...

6月22日 19:44 投稿

MySQLのJOINクエリの詳細

1、データベースの準備:``` CREATE DATABASE IF NOT EXISTS library_db DEFAULT CHARACTER SET UTF8; USE library_db; DROP TABLE IF EXISTS product_catalog; CREATE TABLE product_catalog ( item_id INT(11) PRIMARY KEY AUTO_INCREMENT, product_name VARCHAR(20) DEFAULT NULL, cost DECIMAL(6,2) DEFAULT NULL, creator VARCHAR(20) DEFAULT NULL, category_id INT( ...

6月22日 19:09 投稿

MySQLの主要関数と実用的なクエリ例

1. 文字列操作関数 1.1 CONCAT 複数の文字列を結合して単一の文字列を生成します。 SELECT CONCAT('Web', '-', 'App') AS combined_str; 出力結果は Web-App となります。 1.2 SUBSTRING 文字列から指定した位置と長さの部分文字列を抽出します。 SELECT SUBSTRING('Database', 1, 4) AS partial_str; 出力結果は Data となります。 1.3 LENGTH 文字列のバイト長または ...

6月21日 23:01 投稿

MyBatisの核心機能と設計思想

MyBatisとは何ですか? MyBatisは、カスタムSQL、ストアドプロシージャ、高度なマッピングをサポートする優れた永続層フレームワークです。JDBCコードの大部分やパラメータ設定、結果セットの取得といった手動処理を大幅に削減します。 MyBatisの利点 柔軟性: SQL文を直接記述できるため、非常に柔軟な操作が可能です。 習得の容易さ: Hibernateのようなフル機能ORM ...

6月21日 21:04 投稿

SQLによるテーブルデータの追加・更新・削除操作

関係データベースにおける基本的なデータ操作は、INSERT、UPDATE、DELETE の3つのDML文で実現されます。以下に、各操作の実践的な使い方と注意点を、実際の教育データモデル(学生・科目・履修)を基に解説します。 1. データの挿入(INSERT) 単一レコードの挿入 明示的に列名を指定し、対応する値を提供します。列順と値順が一致している必要があります。 -- 学生マス ...

6月21日 20:08 投稿

Oracleにおける統計情報の役割とANALYZE・DBMS_STATSの活用ガイド

統計情報の概要と最適化の仕組み Oracle Databaseでクエリのパフォーマンスを最大限に引き出すには、コストベース最適化(CBO)を適切に機能させる必要があります。CBOはテーブルやインデックスの統計情報を参照し、実行コストが最小となる「実行計画」を選択します。 統計情報の収集には、主にANALYZEコマンドとDBMS_STATSパッケージの2つの手法が用いられます。かつて利 ...

6月21日 16:55 投稿

SQL基本クエリ操作

SELECT構文の構造 SELECT [ALL|DISTINCT] カラム名 [計算式]... FROM テーブル名 [テーブル名2...] [WHERE 条件式] [GROUP BY カラム名 [カラム名2...]] [HAVING 集約条件] [ORDER BY カラム名 [ASC|DESC] [カラム名2...]] ALLは重複行を保持、DISTINCTは重複排除 WHEREで行単位のフィルタリング GROUP BYでグループ化後にHAVINGでグループフィルタ ORDER BYで最終結果 ...

6月20日 23:47 投稿