トップ ライブラリ/Framework/CMS MyBatis MyBatisの使い方 SQL操作 select文 レコードIDを指定してデータを1件取得

MySQLからレコードIDを指定してデータを1件取得-MyBatisのSQL操作(select文)

このページでは、MyBatisを使用して、MySQLからselect文でレコードIDを指定してデータを1件取得する方法について記述しています。

動作環境

サンプルは以下の環境で作成しました。

データベース

MySQLにログインします。

mysql -u root -ppassword

データベース領域(test)を作成します。

mysql> create database test;

テーブル(sample)を作成します。

mysql> CREATE TABLE `sample` (
  `recid` char(5) NOT NULL,
  `name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`recid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

データ挿入します。

mysql> INSERT INTO sample VALUES ('00001', 'name1');
mysql> INSERT INTO sample VALUES ('00002', 'name2');
mysql> INSERT INTO sample VALUES ('00003', 'name3');

作成したテーブルとデータは以下の通りになります。

mysql> select * from sample;
+-------+-------+
| recid | name  |
+-------+-------+
| 00001 | name1 |
| 00002 | name2 |
| 00003 | name3 |
+-------+-------+

ソースコード

サンプル実行クラス(SampleMain.java)

package sample;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class SampleMain {
  public static void main(String[] args) throws IOException {
    InputStream in = Resources.getResourceAsStream("mybatis-config.xml");
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
    SqlSession session = factory.openSession();
    SampleDto dto = (SampleDto) session.selectOne("selectByRecid","00001");
    System.out.println(dto.getRecid() + " : " + dto.getName());
  }
}

sampleテーブルのデータ格納用のデータクラス(SampleDto.java)

package sample;

public class SampleDto {
  private long recid;
  private String name;
  public long getRecid() {
    return recid;
  }
  public void setRecid(long recid) {
    this.recid = recid;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
}

MyBatisの設定

JDBCの設定など全体的な設定(mybatis-config.xml)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC
"-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf8"/>
<property name="username" value="<ユーザー>"/>
<property name="password" value="<パスワード>"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="sql-mapper.xml"/>
</mappers>
</configuration>

SQLの設定(sql-mapper.xml)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC 
"-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="sample">
<resultMap id="sampleResult" type="sample.SampleDto">
<result property="recid" column="RECID" />
<result property="name" column="NAME" />
</resultMap>
<select id="selectByRecid" resultMap="sampleResult">
select * from sample where recid = #{recid}
</select>
</mapper>

アプリの構成

下に以下の構成を作成します。

□任意のフォルダ/
├─bin
│  └─sample
│          SampleDto.class
│          SampleMain.class
│      mybatis-config.xml
│      sql-mapper.xml
└─lib
        mybatis-3.2.3.jar
        mysql-connector-java-5.1.26-bin.jar

動作確認

上記の構成のbinとlibの上までコマンドプロンプトで移動して、以下のコマンドを実行すると、 「1 : name1 」と表示される。

CLASSPATH=.\lib\mybatis-3.2.3.jar
CLASSPATH=%CLASSPATH%;.\lib\mysql-connector-java-5.1.26-bin.jar
CLASSPATH=%CLASSPATH%;.\bin;
java -classpath %CLASSPATH% sample.SampleMain
1 : name1

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Bcc /Eclipse /gcc /gdb /g++ /JDK /JUnit /ZAP

技術・仕様
Ajax /CORBA /Java EE(旧称J2EE) /JNI

ライブラリ/Framework/CMS
jQuery /Lucene /MyBatis /RESTEasy /Spring /Struts /Seasar2 /WordPress

ITインフラ OSとミドルウェア
Linux /Windows /シェル
Apache/Tomcat /MySQL /Redis /Solr /vsftpd

ITインフラ PC 製品
ZOTAC

ITインフラ サーバー
Web公開サーバー構築

ITインフラ ネットワーク
プログラミング /機器 /構築

ITインフラ セキュリティ
公開サーバーのセキュリティ

SI
ホームページの作り方 /小さな会社のISMS

その他
IT用語 /ITスキル体系 /トレンド履歴 /翻訳英語の学習 /RSEUserGuide翻訳

スポンサーリンク