- HOME >
- 管理人
管理人
SEとして働く管理人「まつ」がつぶやく個人運営サイトになります。 ITの難しい用語や、仕事で感じた事などを中心に"わかりやすさ"を意識して記事にしています。少しでも共感や参考にしていただける人がいたら嬉しいです。
【MyBatis】大量データを一括更新する MyBatisで大量データを一括で更新する方法を紹介します。 使用するDBMS(データベース管理システム)により一括更新の方法が異なるため、本記事では「Oracle」「PostgreSQL」「SQL Server」「MySQL」それぞれの方法を紹介します。 ※今回の例では、下記のUPDATE文を一括更新しています。 [通常のUPDATE文] <!-- 更新 --> <update id="update"> UPDATE ...
【MyBatis】BULK INSERTでデータを登録する方法 MyBatisでデータを一括登録(BULK INSERT)する方法を紹介します。 また「一括登録(BULK INSERT)」と「1件ずつ登録(INSERT)」する方法で 1万、10万、100万レコードを登録したときにかかる処理時間を測定しています。 本記事で使用するテーブル定義は次のとおり。 物理名論理名データ型NOT NULL説明idIDBIGINT〇主キー(AUTO_INCREMENT)name名前VARCHAR(100)〇ユーザーの名前 ...
MyBatisでDELETE文を実行する方法 MyBatisでDELETE文を使いレコードを物理削除する方法を紹介します。 SQL文(XMLファイル) MyBatisのSQL文(XMLファイル)は次のとおりで、<delete>~</delete>内にDELETE文を書くことができます。 [XMLファイル] <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUB ...
MyBatisでUPDATE文を実行する MyBatisでUPDATE文を使いレコードを更新する方法を紹介します。 本記事で使用するテーブル定義は次のとおり。 物理名論理名データ型NOT NULL説明idIDBIGINT〇主キー(AUTO_INCREMENT)name名前VARCHAR(100)〇ユーザーの名前address住所VARCHAR(255)ユーザーの住所phone電話番号VARCHAR(50)ユーザーの電話番号update_date更新日時DATETIME〇最終更新日時create_date作 ...
MyBatisでINSERT文を実行する MyBatisでINSERT文を使いレコードを登録する方法を紹介します。 本記事で使用するテーブル定義は次のとおり。 物理名論理名データ型NOT NULL説明idIDBIGINT〇主キー(AUTO_INCREMENT)name名前VARCHAR(100)〇ユーザーの名前address住所VARCHAR(255)ユーザーの住所phone電話番号VARCHAR(50)ユーザーの電話番号update_date更新日時DATETIME〇最終更新日時create_date作 ...
階層構造でautoMappingを利用する方法 MyBatisでは、次のように<resultMap>を利用することで、ネストしたリスト(階層構造)を手動でマッピングできます。 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org ...
MyBatisでIN句を使用する方法 MyBatisで次のようにIN句を使ったSQL文を生成する方法を紹介します。 SELECT * FROM userinfo WHERE id IN ('1','2'); SQL文(XMLファイル) MyBatisのSQL文(XMLファイル)は次のとおりです。 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBL ...
MyBatisでWHERE句を動的に生成する方法 WHERE句を静的に生成すると困るケース 例えば、MyBatisで次のような動的SQLを作成したとします。 <select id="search" resultType="com.example.demo.entity.UserInfo"> SELECT * FROM userinfo WHERE <if test="id != null"> id = #{id} < ...
MyBatisで条件分岐を実装する ifで条件分岐 MyBatisで「if test」を使えば、「もし~だったら」という条件文が書けます。 次の例で、もし「idがnull以外」の場合「AND id = #{id}」の条件をWHERE句に追加するという条件分岐を作成しています。 <select id="search" resultType="com.example.demo.entity.UserInfo"> SELECT * FROM userinfo ...
MyBatisでネストしたリストをマッピングする方法 MyBatisで親子関係になっているネストしたリスト(階層構造)をマッピングする方法を紹介します。 例えば、次のようなテーブルがあるとします。(会社テーブルと社員テーブルの関係性は1:n) この2つのテーブルを結合したSQL文を発行し、下記のようなオブジェクトにマッピングしたい、というケースはよくあります。 SELECT c.id ,c.name ,e.id AS employeeId ,e.name AS employeeName ,e.addres ...
MyBatisでLIKE検索 CONCAT関数を使用する MyBatisで「部分一致」「前方一致」「後方一致」検索する場合は、LIKEとCONCAT関数を使って記述します。 ■部分一致 LIKE CONCAT('%', #{value}, '%') ■前方一致 LIKE CONCAT(#{value}, '%') ■後方一致 LIKE CONCAT('%', #{value}) 下記はMyBatisでLIKE句を使ったSELECT文の例です。 ...
はじめに MyBatisを利用した楽観ロックの方法を紹介します。 MyBatisはSpring Data JPAのようにライブラリとして楽観ロックを行う仕組みは提供していないため、独自で実装する必要があります。 本記事で使用するテーブル定義は次の通りです。 物理名 論理名 データ型 NOT NULL 説明 id ID BIGINT 〇 主キー(AUTO_INCREMENT) name 名前 VARCHAR(100) 〇 ユーザーの名前 update_date 更新日時 TIMESTAMP 〇 楽観ロック用 ...
はじめに Spring Data JPAを利用した楽観ロックの方法を紹介します。 本記事で使用するテーブル定義は次の通りです。 物理名 論理名 データ型 NOT NULL 説明 id ID BIGINT 〇 主キー(AUTO_INCREMENT) name 名前 VARCHAR(100) 〇 ユーザーの名前 version バージョン BIGINT 〇 楽観ロック用カラム ■CREATE文 CREATE TABLE `sampledb`.`lock_test` ( `id` BIGINT NOT NULL ...
はじめに MyBatisとSpring Bootを利用して「検索画面」「登録画面」「編集画面」の作成方法を紹介します。 本記事で作成する画面は次のとおりです。 ■検索画面 ■新規登録画面 ■編集画面 開発環境 開発環境名称説明開発言語Java人気の開発言語開発ツールEclipseJavaでの定番開発ツールフレームワークSpring Boot人気のSpringフレームワークをベースとしたフレームワークテンプレートエンジンThymeleafSpring Bootと相性が良いテンプレートエンジンデータベースMy ...
ネイティブコード ネイティブコードとは ネイティブコード(英:native code)とは、コンピュータのCPU(マイクロプロセッサ)が理解できる形式(機械語)で記述されたプログラムのことです。オブジェクトコードとも呼ばれています。 機械語の命令形式はCPUの種類によって異なります。 一般的に同じメーカーのCPUであれば、プロセッサ製品間は同じ命令セット(機械語で記述された命令の集まり)を共有するが、メーカーが異なれば命令セットも変わり(異なるメーカーでも同じ命令セットの場合もある)、ネイティブコードはC ...
バイトコード バイトコード(中間コード)とは バイトコード(英:bytecode)とは、仮想マシン上で動作するために作られた実行可能な中間コードのことです。 バイトコードという名前は、命令の構成がバイト指向のためバイトコードと呼ばれていたが、仮想マシン上で動作するために作られた実行可能な中間コードであれば、バイト指向でなくともバイトコードと呼ぶことが多いです。 バイトコードのイメージ例 プログラミング言語は人間が解釈しやすいように作られているため、そのままではコンピュータは理解できません。そこで、次の図の ...
オブジェクトコード オブジェクトコード(英:object code)とは、プログラミング言語で書かれたソースコードをコンピュータが直接実行できる形式に変換したコードのことです。 プログラミング言語は人間が解釈しやすいように作られているため、そのままではコンピュータは理解できません。そのためコンパイラなどを使い、コンピュータが解釈できる形式のコード(機械語)に変換してから実行します。 このコンパイラなどで生成したコードのことをオブジェクトコードといいます。 次の図は、コンパイラのイメージ例です。 コンパイラ ...
JITコンパイラ JITコンパイラ(実行時コンパイラ)とは JITコンパイラとは Just In Timeの略で、その名の通り"必要なものを必要な時に"コンパイルするコンパイラのことです。 ソフトウェア実行時にコードのコンパイルを行い実行速度の向上を図るコンパイラで「実行時コンパイラ」とも呼ばれています。 通常のコンパイラは、ソースコードから機械語(オブジェクトコード)への変換を実行前に事前に行います。 それに対しJITコンパイラは、ソフトウェア実行時にソースコード または 中間コード(バイトコード)を機 ...
バイトコードインタプリタ バイトコードインタプリタとは、バイトコード(中間コード)を実行するインタプリタのことです。 インタプリタとは「通訳者」の意味で、コンピュータが解釈できる機械語に変換しながら実行するものであり、バイトコードとは、仮想マシン上で動作するために作られた実行可能な中間コードのことです。 次の図は、バイトコードインタプリタのイメージ例です。 ソースコードを仮想マシンで動作するバイトコード(中間コード)にコンパイル(変換)し、コンパイルしたバイトコードをバイトコードインタプリタで機械語に変換 ...
トランスコンパイラ トランスコンパイラとは トランスコンパイラとは、あるプログラミング言語で書かれたソースコードを入力として受け取り、別のプログラミング言語の同等のコードを生成するコンパイラの一種です。 コンパイラが、高水準言語で書かれたソースコードを入力とし、低水準言語のコードを生成するのに対し、トランスコンパイラでは、同じ程度の水準のコードを出力します。 次の図はコンパイラとトランスコンパイラのイメージ例です。 コンパイラは、人間が解釈しやすい「高水準言語」を入力とし、コンピュータが解釈しやすい「低水 ...