【Java】Mybatisによるデータベース操作

5511 ワード

文書ディレクトリ
  • 前言
  • プロジェクト構造
  • 依存パッケージ
  • を追加
  • Mybatisプロファイル
  • を作成する
  • データベースとデータテーブル
  • を作成する
  • 新しいデータテーブルに対応するエンティティクラス
  • 新しいUserクラスの対応するマッピング層
  • テストクラス
  • 前言
    Mybatisとは?ウィキペディアでは、MybatisはJava永続化フレームワークであり、XML記述子または注釈によってオブジェクトをストレージ・プロシージャまたはSQL文に関連付けます.一般的に言えばMybatisは、JPA(Java永続化API、Javaアプリケーションインタフェース仕様)の実装であり、データベースの操作プロセスを簡素化するために派生した製品である.Mybatisのチュートリアルについては、公式ドキュメントを参照することをお勧めします:Mybatis公式ドキュメント
    プロジェクト構造
    依存パッケージの追加
    本明細書で使用するJar依存パッケージには,Mybatisパッケージ,Mysqlドライバパッケージがある.pom.xml:
    
    
        4.0.0
    
        ddnd
        ddnd
        1.0-SNAPSHOT
    
        
    
            
                org.mybatis
                mybatis
                3.4.6
            
    
            
            
                mysql
                mysql-connector-java
                8.0.13
            
    
        
        
    
    

    Mybatisプロファイルの作成
    Mybatis-config.xmlファイルを新規作成し、Mybatisの構成を完了します.cn/ddnd/www/Entity/User.xmlは、マッピングするクラスを含むxmlプロファイルです.
    
    
    
    
        
            
        
        
            
                
                
                    
                    
                    
                    
                
            
        
        
            
        
    
    

    データベースとデータテーブルの作成
    本稿ではMysqlを用い,プレゼンテーションの便宜上,簡単なデータベースspringのみを作成し,データテーブルuserも作成した.データテーブルSQLコードを作成します.
    CREATE TABLE `user` (
      `email` varchar(255) DEFAULT NULL,
      `name` varchar(255) DEFAULT NULL,
      `password` varchar(255) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    

    新しいデータテーブルに対応するエンティティークラス
    データベース内のuserテーブルとの関係マッピングを実現するために、ここで新しいUserクラスを作成します.User.java:
    package cn.ddnd.www.Entity;
    
    public class User {
        String email;
        String name;
        String password;
    
        User(String email, String name, String password){
            this.email = email;
            this.name = name;
            this.password = password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public void setEmail(String email) {
            this.email = email;
        }
    
        public String getPassword() {
            return password;
        }
    
        public String getName() {
            return name;
        }
    
        public String getEmail() {
            return email;
        }
    
    }
    

    新しいUserクラスの対応するマッピングレイヤ
    Userクラスのパスの下で新しいUser.xmlを作成し、オブジェクトのマッピングを完了します.resultType="User"Userは、Mybatisプロファイルのによって指定されたUserの別名です.
    
    
    
    
        
    
    

    テストクラス
    新しいテストクラスを作成し、メールボックスを検索します[email protected]のユーザー情報です.test.java:
    import cn.ddnd.www.Entity.User;
    import org.apache.ibatis.session.SqlSession;
    import org.apache.ibatis.session.SqlSessionFactory;
    import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.apache.ibatis.io.Resources;
    import sun.awt.geom.AreaOp;
    
    import java.io.Reader;
    import java.io.IOException;
    
    
    public class test {
        private static Reader reader;
        private static SqlSessionFactory sqlSessionFactory;
    
        static{
            try{
                reader = Resources.getResourceAsReader("Mybatis-config.xml");
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            }catch (IOException e){
                e.printStackTrace();
            }
        }
        @Test
        public void a() throws IOException {
            SqlSession sqlSession = sqlSessionFactory.openSession();
    
            try{
                User user = (User) sqlSession.selectOne("cn.ddnd.www.Entity.User.getUser", "[email protected]");
                System.out.println("      :" + user.getEmail() + ",      :" + user.getName() + ",      :" + user.getPassword());
            }finally {
                sqlSession.close();
            }
        }
    }
    
    

    データテーブル情報:
    テスト結果:
    変換元:https://ddnd.cn/2018/11/29/Mybatis-Introduction/