# mybatisについて(3) ## mybatisについて これは今まで[1](https://hackmd.io/@ka-777/Hkdqwxvid),[2](https://hackmd.io/@ka-777/H1GFEtiod)とやってきたのでそちらを参照してください 今回は、ただSQLの内容をXMLファイルに入れるだけです。 ## 3つ目のアプリ ### フォルダ構造 今回はSQLをXMLに記述していきます。 今回も前回までのを作成していない場合はそちらを作成するのをおすすめします。(前回より新しい内容だけコードを記述していきます)  ### Mybatipseのインストール mybatipseはMybatisのXMLファイルの編集等を補助してくれるプラグインなのでこれをインストールします  画像のようにヘルプを押すとEclipseマーケットプレースがあるのでそれをクリックして開きます  開くとこのような表示になるので検索と書いてあるところに画像のように「mybatipse」と入力して検索すると 画像のような変なアイコンがかかれたのが出ると思います。これを右下のインストールを押せばOKです。  しばらくすると上のようなライセンスの確認がでるので同意して進めていきます  インストールする際に上のような注意がでても問題ないのでそのまま続けます  インストールが終わると再起動しろと言われるので再起動をしたらそれでインストール終了です。 ### XMLファイルの作成 src/main/resourcesで右クリック→新規→その他を押して、以下の画像のようにmybatisのとこに先ほどインストールしたものが入っています。  それで次へをおしたら親フォルダ名の最後に「dev/itboot/mb/mapper」を追加して名前をTeacherMapper.xmlにします そしていつも通りダブルクリックを押すと画像のような形で 表示されるので下の方にあるデザインからソースに変更します。  ソースに変更するとコードを入力できるようになります。  ちなみにちゃんとできていると、xmlの3行目にある以下のリンクをctrlキーを押しながら左クリックするとファイルを自動的に開いてくれます ``` <mapper namespace="dev.itboot.mb.mapper.TeacherMapper"> ``` そしてここからXMLを編集していきます TeacherMapper.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="dev.itboot.mb.mapper.TeacherMapper"> <!-- mapperタグ内に、以下を追加 --> <select id="selectAll" resultType="Teacher"> SELECT * FROM teacher </select> <select id="selectByPrimaryKey" resultType="Teacher"> SELECT * FROM teacher WHERE id = #{id} </select> <insert id="insert"> INSERT INTO teacher(user_name, email) VALUES(#{userName}, #{email}) </insert> <update id="updateByPrimaryKey"> UPDATE teacher SET user_name = #{userName}, email = #{email} WHERE id = #{id} </update> <delete id="deleteByPrimaryKey"> DELETE FROM teacher WHERE id = #{id} </delete> </mapper> ``` 簡単に説明するとDB操作の内容をSELECT,INSERT,UPDATE,DELETEをそれぞれタグで分けてその中に記述します この時のIDはJava側のメソッド名と一致させないとエラーになるので注意が必要です resultTypeは結果の型を指定するだけです また、今回はSQL文をXMLに書いているので、前回まではTeacherMapper.javaに記述していた@SELECT等のアノテーションとかをすべて消すことができます。 ### application.propertiesの編集 XMLのパッケージ名を省略して記述できるようにするために以下の内容を追加します 前回までのをやっている人は2行目だけで大丈夫です ``` mybatis.configuration.map-underscore-to-camel-case=true mybatis.type-aliases-package=dev.itboot.mb.model ``` ### Mapperクラスの編集 先ほどXMLのとこでも言いましたが、XMLのほうにSQL文を記述しているので前回まではすべてTeacherMapper.javaに記述していたのでそちらを削除&編集していきます TeacherMapper.java ``` package dev.itboot.mb.mapper; import java.util.List; import org.apache.ibatis.annotations.Mapper; import dev.itboot.mb.model.Teacher; @Mapper public interface TeacherMapper { // 各SQL文を削除します List<Teacher> selectAll(); Teacher selectByPrimaryKey(Long id); int insert(Teacher record); int updateByPrimaryKey(Teacher record); int deleteByPrimaryKey(Long id); } ``` またここに記述してあるのがXMLファイルのそれぞれのIDの部分なのでXMLからそれぞれのIDをCtrlキーを押しながら左クリックをするとこちらのTeacherMapper.javaのメソッドに飛んでくることができます。 ### 実行 今回は少ししか付け加えていないのでかなり短いと思いますがこれで完了したのでいつも通り実行します。 実行後は[ここ](http://localhost:8080/)にアクセスをします。 実行内容は前回と変わらないので割愛します(今回編集したのはSQLをXMLに入れただけなのでそれ以外のことはしていません) ### まとめ 難しい・。・ 前回の内容↓↓↓↓↓↓ https://hackmd.io/@ka-777/Hkdqwxvid 次回の内容↓↓↓↓↓↓ https://hackmd.io/@ka-777/B1m00Inj_
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up