JavaWeb開発:mybatis入門

6699 ワード

【声明:】本文は作者(キノコv 5)のオリジナルで、著作権は作者のキノコv 5の所有で、権利侵害は必ず追及します.本文は先発している.転送する場合は、作者とソースアドレスを明記してください.無断転載は厳禁!mybatis公式サイト
概要:MyBatisは、SQLのカスタマイズ、ストレージ・プロシージャ、および高度なマッピングをサポートする優れた永続層フレームワークです.MyBatisは、ほとんどのJDBCコードと手動でパラメータを設定し、結果セットを取得することを回避します.MyBatisは、単純なXMLまたは注釈を使用して、生タイプ、インターフェース、およびJavaPOJO(Plain Old Java Objects、通常のレガシーJavaオブジェクト)をデータベース内のレコードとして構成およびマッピングすることができる.
インストールと使用MyBatisを使用するには、mybatis-x.x.x.jarファイルをclasspathに配置するだけです.Mavenを使用してプロジェクトを構築する場合は、次のdependencyコードをpom.xmlファイルに配置する必要があります.

  org.mybatis
  mybatis
  x.x.x


操作手順
1、プロファイルの作成jdbc_config.propertiesmybatis-config.xmlのファイルを作成し、データベースとの接続設定操作を完了します.jdbc_config.properties:
username=ceshi
password=123
url=jdbc:mysql://localhost:3306/mybatis
driver=com.mysql.jdbc.Driver
mybatis-config.xml:






        
    
  
    
      

      
        
        
        
        
      
    
  
  
    
  


2.データテーブルに基づいて、該当するエンティティークラスを作成する
public class User {
    private int id;
    private String username;
    private String password;
    private String nickname;
    private int type;
    private List
addresses; public List
getAddresses() { return addresses; } public void setAddresses(List
addresses) { this.addresses = addresses; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public int getType() { return type; } public void setType(int type) { this.type = type; } }

3、mapper.xmlファイルの作成mapperファイルを作成してエンティティークラスのマッピングを完了User.xml:




    
        insert into t_user (username,password,nickname,type)
            value(#{username},#{password},#{nickname},#{type})
    
    
    
        update t_user set password=#{password},nickname=#{nickname},
type=#{type} where id=#{id}
    
    
    
        delete from t_user where id=#{id}
    
    
    
    
    


4、作成SqlSessionFactory session対応する操作を実行するSQlSessionが作成され、SqlSessionによってデータベースの操作が完了します.TestMyBatis:
public class TestMyBatis {

    @Test
    public void testDelete() {
    SqlSession session = null;
        try {
            session = MyBatisUtil.createSession();
            session.delete(User.class.getName()+".delete",10);
            session.commit();
        }  catch (Exception e) {
            e.printStackTrace();
            session.rollback();
        } finally {
            MyBatisUtil.closeSession(session);
        }
    }
    
    @Test
    public void testAdd() {
        SqlSession session = null;
        try {
            session = MyBatisUtil.createSession();
            User u = new User();
            u.setNickname("   ");
            u.setPassword("10086");
            u.setType(0);
            u.setUsername("ldh");
            session.insert(User.class.getName()+".add", u);
            session.commit();
        } catch (Exception e) {
            e.printStackTrace();
            session.rollback();
        } finally {
            MyBatisUtil.closeSession(session);
        }
    }
    
    @Test
    public void testLoad() {
        SqlSession session = null;
        try{
            session = MyBatisUtil.createSession();
            User u = (User)session.selectOne(User.class.getName()+".load", 1);
            System.out.println(u.getNickname());
        } finally {
            MyBatisUtil.closeSession(session);
        }
    }
    
    @Test
    public void testList() {
        SqlSession session = null;
        try{
            session = MyBatisUtil.createSession();
            List us = session.selectList(
              User.class.getName()+".list", null);
            System.out.println(us.size());
        } finally {
            MyBatisUtil.closeSession(session);
        }
    }   
}

MyBatisUtil:
public class MyBatisUtil {
    private static SqlSessionFactory factory;
    static {
        try {
            InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
            factory = new SqlSessionFactoryBuilder().build(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    public static SqlSession createSession() {
        return factory.openSession();
    }
    
    public static void closeSession(SqlSession session) {
        if(session!=null) session.close();
    }
}