MyBatis学習ノート(一)

6963 ワード

Demoのディレクトリ構造をテストします.
com.luohao.config
    ->MyBatisCongfig.xml
    ->userMapper.xml
com.luohao.Test
    ->TestMyBatis.class
    ->User.class

テストデータベースはMySQLで、使用するデータベース接続はJDBCで、上のディレクトリ構造の中でMyBatisConfig.xmlはMyBatisのコアプロファイル、userMapperです.xmlはSQL文をマッピングするために使用されます.ここでのマッピングは、注釈を使用せずにmxlファイルを構成するために使用されます.これは、多くの複雑な状況でxmlファイルを使用して構成されるため、プログラムがきれいに見え、プログラミングがより効率的になります.
コアプロファイルのxmlファイルは次のとおりです.
ファイル:MyBatisConfig.xml
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE configuration
 3   PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4   "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5  <configuration>
 6          <environments default="development">
 7             <environment id="development">
 8                 <transactionManager type="JDBC"/>
 9                 <dataSource type="POOLED">
10                     <property name="driver" value="com.mysql.jdbc.Driver"/>
11                     <property name="url" value="jdbc:mysql://localhost:3306/blogtest"/>
12                     <property name="username" value="root"/>
13                     <property name="password" value="*******"/>
14                 </dataSource>
15             </environment>
16           </environments>
17           
18           <mappers>
19               <mapper resource="com/luohao/config/userMapper.xml"/>
20           </mappers>
21           
22 </configuration>

各environmentは各データベースに対応しており、ここのデータは私のブログのデータベースをテストとして使用しています.下のmapperタグはSQL文のファイルパスをマッピングするためのもので、ここではディレクトリ構造からuserMapperを見る.xmlから見ると経路はcom/luohao/config/userMapperであるべきである.xml.
その後、SQL文のみがマッピングされ、ファイルはuserMapperです.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 <mapper namespace="com.luohao.config.userMapper">
4     <select id="Username" parameterType="String"
5         resultType="com.luohao.Test.User">
6         select * from user where username=#{username}
7     </select>
8 </mapper> 

ここのネーミングスペースは必須ですが、これはMyBatisが新しい特性であり、コードと家を厳格にする特性です.
id用は識別で、その後のjavaコードにこれが現れます.paramterTypeはデータ型に対応するために使用されます.ここではusernameで、Stringクラスに対応しています.resultTypeはインスタンスクラスでもモデルクラスとも呼ばれ、データベースSQL文で得られたパラメータを実行するためのgetまたはsetメソッドです.
その後のデータベース文はほぼ一致しますが、#番号の後のjavaコードには検索するものが挿入されます.次はjavaコードです.
 1 package com.luohao.Test;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import org.apache.ibatis.io.Resources;
 6 import org.apache.ibatis.session.SqlSession;
 7 import org.apache.ibatis.session.SqlSessionFactory;
 8 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
 9 
10 public class TestMyBaits {    
11     
12     public static void main(String[] args){
13         String resource="com/luohao/config/MyBatisConfig.xml";//         
14         InputStream inputStream = null;
15         try {
16             inputStream = Resources.getResourceAsStream(resource);
17         } catch (IOException e) {
18             e.printStackTrace();
19         }
20         //  SQLSession  
21         SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
22         SqlSession session=sqlSessionFactory.openSession();
23         String statment ="com.luohao.config.userMapper.Username"; //   Username    Mapper  id,   selectOne       SQL   
24         User user=session.selectOne(statment,"luohao");
25         System.out.println(user.getEmail());
26     }
27 }

その後のuserクラスはあまり言わず、getとsetメソッドです.
これは簡単なMyBatisのDemoです.