JPAとMyBatisを触ってみた感想
JPAのJPQLはパフォーマンスが良いらしい?
とのことで、使ってみましたが、理解が進んでいないためか、あまり使い勝手が良いように感じなかった。。。
MyBatisも触ってみたが、Eclipseのプラグインを使えば、DBからEntityを自動生成してくれる機能は、両方とも持ってるので それだったら、使い慣れてるSQLを利用できる方が便利では?
という感じがしてます。
テーブルへのアクセス定義
テーブルへのアクセス定義
こうして見ると、両者にあまり違いはないように思えた。
パフォーマンスは、JPAの方が良いのかな〜?
なんて思ったりもしますが、結局、好みの問題ですかね〜。
とのことで、使ってみましたが、理解が進んでいないためか、あまり使い勝手が良いように感じなかった。。。
MyBatisも触ってみたが、Eclipseのプラグインを使えば、DBからEntityを自動生成してくれる機能は、両方とも持ってるので それだったら、使い慣れてるSQLを利用できる方が便利では?
という感じがしてます。
JPAの場合
テーブルへのアクセス定義
<named-query name="MProject.findByKey"> <query> SELECT m FROM MProject m WHERE m.projId = :projId </query> </named-query>実行
EntityManager em = JPACore.getEntityManager("TestManagerJPA"); Query query = em.createNamedQuery("MProject.findByKey"); query.setParameter("projId", "abc"); MProject mProject = (MProject) query.getSingleResult(); System.out.print("Proj Id = " + mProject.getProjId());
MyBatisの場合
テーブルへのアクセス定義
<select id="selectByPrimaryKey" parametertype="String" resultmap="hashMap"> select * from m_Project where projId = #{projId} </select>実行
try (Reader r = Resources.getResourceAsReader("mybatis-config.xml");) { SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(r); SqlSession session = factory.openSession()) { MProjectMapper map = session.getMapper(MProjectMapper.class); MProject proj = map.selectByPrimaryKey("abc"); System.out.print("Proj Id = " + mProject.getProjId()); }
こうして見ると、両者にあまり違いはないように思えた。
パフォーマンスは、JPAの方が良いのかな〜?
なんて思ったりもしますが、結局、好みの問題ですかね〜。
コメント
コメントを投稿