MyBatis-教程の実例-単表のCRUDの詳細


一、自分で手書きで配置ファイルを書きます。
1.Javaプロジェクトの新規作成
私はeclipseでjava projectプロジェクトを新規作成します。そして二つのカバンを作りました。org.mybatis.exampleとorg.mybatis.javabean
最初のカバンはテストクラスとマッピングファイルを置くために使います。
二つ目のカバンはデータベースに対応するjavaBeanを置くために使います。
データベースにテーブルを作成します。
-- Table "t_user" DDL

CREATE TABLE `t_user` (
  `user_name` varchar(20) NOT NULL default '',
  `password` varchar(20) default NULL,
  PRIMARY KEY  (`user_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
2.関連パッケージの導入
インポートする必要のあるパッケージ:
mybatis-31.11.jar
mysql-connector-java-51.16-bin.jar
また、テスト時にSQL文が見えるように、ロゴ4 jのカバンを導入しました。
asm-3.3.1.jar
cglib-23.22.jar
commons-loging-11.jar
log 4 j-1.2.jar
 
ロゴ4 j.propertiesプロファイルも追加されます。
log 4 j.properties:
log4j.rootLogger=DEBUG,CONSOLE 
log4j.addivity.org.apache=true  
#         
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
log4j.appender.Threshold=DEBUG  
log4j.appender.CONSOLE.Target=System.out  
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[thread] n%c[CATEGORY]%n%m[MESSAGE]%n%n  
src/java/mainディレクトリの下に置いてあります。
3.mybatis-config.xmlファイルを書く
mybatis-config.xmlファイルを新規作成し、src/java/mainディレクトリの下に置いてください。



  
    
      
      
        
        
        
        
      
    
  
  
    
  
ここで、mapperタグは、マッピングファイルを指しています。もしあなたが複数の書類を持っているなら、ここで複数を書くことができます。
4.データベーステーブルのマッピングファイルを作成するStudentMapper.xml
org.mabatis.exampleの下にTserMapper.xmlファイルを新たに作成しました。内容は以下の通りです。



	
	
		
		
	
	
	
		insert into t_user(user_name,password) values(
		#{userName},
		#{password}
		)
	
	
	
		update t_user
		
			user_name=#{userName},
			password=#{password}
		
		
			user_name=#{userName}
		
	

	
	
		delete from t_user
		
			user_name=#{userName}
		
	
	
	


	
	
	
	
		
			user_name=#{userName}
			and password=#{password}
		
	

各sql文など、コメントを書きました。全部分かりましたよね。単時計のCRUDは、これだけで十分使えます。
5.CRUDの四つの方法を書いて、そしてテストします。
org.mybatis.exampleの下にテストクラスMainを新規作成します。内容は以下の通りです。
package org.mybatis.example;

import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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

public class Main {

    public static void main(String[] args) throws Exception {
        String resource = "mybatis-config.xml";
        InputStream in = Resources.getResourceAsStream(resource);
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        //   
        HashMap map = new HashMap();
        map.put("userName", "lisa");
        map.put("password", "100100");
        System.out.println("  map    :" + insert(factory.openSession(), map));

        // TUser user = new TUser();
        // user.setUserName("lili");
        // user.setPassword("abc001");
        // System.out.println("  javabean    :" + insert(factory.openSession(), user));
        //   
        // HashMap map = new HashMap();
        // map.put("userName", "lisa");
        // map.put("password", "990099");
        // System.out.println("  map    :" + update(factory.openSession(), map));

        // TUser user = new TUser();
        // user.setUserName("lili");
        // user.setPassword("001100");
        // System.out.println("  javabean    :" + update(factory.openSession(), user));

        //   
        // String userName = "lisa";
        // System.out.println("    :" + delete(factory.openSession(), null));
        //   
        // System.out.println("       :" + selectCount(factory.openSession()));
        // TUser u = new TUser();
        // u.setUserName("lisa");
        // List list = selectList(factory.openSession(), u);
        // for (TUser user : list) {
        // System.out.println("name=" + user.getUserName() + ";pwd=" + user.getPassword());
        // }
    }

    /**
     * 
     * DOC   map  javaBean  .
     * 
     * @param sqlSession
     * @param map
     * @return
     */
    private static boolean insert(SqlSession sqlSession, Object mapOrJavaBean) {
        int i = sqlSession.insert("TUser.insert", mapOrJavaBean);
        sqlSession.commit();
        return i > 0;
    }

    /**
     * 
     * DOC   map javaBean    .
     * 
     * @param sqlSession
     * @param map
     * @return
     */
    private static boolean update(SqlSession sqlSession, Object mapOrJavaBean) {
        int i = sqlSession.update("TUser.update", mapOrJavaBean);
        sqlSession.commit();
        return i > 0;
    }

    /**
     * 
     * DOC   .
     * 
     * @param sqlSeesion
     * @param userName
     * @return
     */
    private static boolean delete(SqlSession sqlSession, String userName) {
        Map map = new HashMap();
        map.put("userName", userName);
        int i = sqlSession.delete("TUser.delete", map);
        sqlSession.commit();
        return i > 0;
    }

    /**
     * 
     * DOC        .
     * 
     * @param sqlSession
     * @return
     */
    private static int selectCount(SqlSession sqlSession) {
        return sqlSession.selectOne("TUser.selectCount");
    }

    /**
     * 
     * DOC      .
     * 
     * @param sqlSession
     * @param mapOrJavaBean
     * @return
     */
    private static List selectList(SqlSession sqlSession, Object mapOrJavaBean) {
        return sqlSession.selectList("TUser.select", mapOrJavaBean);
    }

}
最後に、プロジェクトの構造図を置きます。
 
二、公式サイトで提供されたツールを使ってプロファイルを生成する。
1.ダウンロード生成ツール
もしまだツールがないなら、公式サイトでダウンロードできます。前の二つの文章の中にダウンロードの住所が書いてあります。行ってみてもいいです。
ダウンロードしたら、あるディレクトリに解凍します。私はストレスを解消しました。
データベースドライバjarパッケージをlibディレクトリに入力します。
2.プロファイルの作成
新規javaフォルダ
プロファイルを作成するconfig.xml




    

    

        
            
        

        
        

        
            
        

        
            
            
        

        
            
        

        
            
        

        
 
 
3.実行コマンド
コマンドラインの実行:
success fullyを見たら、生成されたファイルが見えます。