MyBatis-スタディノート02 [02.Mybatisエントリーケース]

  1. MyBatis-スタディノート01 [01.Mybatisコースの紹介と環境構築] [day01]
  2. MyBatis-スタディノート02 [02.Mybatisエントリーケース]
  3. MyBatis-スタディノート03 [03.Mybatisフレームワークのカスタマイズ]
  4. MyBatis-スタディノート04 [04。アノテーション開発に基づくカスタムMybatisフレームワーク]
  5. MyBatis-スタディノート05 [05.Mybatisを使用してCRUDを完了する]
  6. MyBatis-スタディノート06 [06.Mybatisを使用してDAOレイヤーの開発を完了]
  7. MyBatis-スタディノート07 [07.Mybatis接続プールとトランザクション]
  8. MyBatis-スタディノート08 [08。動的SQL]
  9. MyBatis-スタディノート09【09.Mybatisのマルチテーブル操作】
  10. MyBatis-スタディノート10 [10.JNDI拡張知識]
  11. MyBatis-スタディノート11 [11.Mybatisキャッシュ]
  12. MyBatis-スタディノート12 [12.Mybatisアノテーションの開発]

目次

1mybatisの使用を開始する

resourcesフォルダーの下にlog4j.propertiesをインポートします

テストクラスを作成する

2mybatisエントリーケースのデザインパターン分析

3Mybatisアノテーションの開発とdao実装クラスの記述方法

注釈の使用

注釈構成

MyBatisはdaoを使用してクラスを実装します

構造図

UserDaoImpl.java

MybatisTest.java


1mybatisの使用を開始する

resourcesフォルダーの下にlog4j.propertiesをインポートします

# Set root category priority to INFO and its only appender to CONSOLE.
#log4j.rootCategory=INFO, CONSOLE            debug   info   warn error fatal
log4j.rootCategory=debug, CONSOLE, LOGFILE

# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=d:\axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d{ISO8601} %-6r [%15.15t] %-5p %30.30c %x - %m\n

テストクラスを作成する

package com.itheima.test;

import com.itheima.dao.IUserDao;
import com.itheima.domain.User;
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 java.io.InputStream;
import java.util.List;

/**
 * mybatis的入门案例
 */
public class MyBatisTest {
    /**
     * 入门案例
     *
     * @param args
     */
    public static void main(String[] args) throws Exception {
        //1.读取配置文件 加载文件中的信息
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3.使用工厂生产SqlSession对象
        SqlSession session = factory.openSession();
        //4.使用SqlSession创建Dao接口的代理对象
        IUserDao userDao = session.getMapper(IUserDao.class);
        //5.使用代理对象执行方法
        List<User> users = userDao.findAll();
        for (User user : users) {
            System.out.println(user);
        }
        //6.释放资源
        session.close();
        in.close();
    }
}

2mybatisエントリーケースのデザインパターン分析

一度にもう1つのクラスを作成する利点:柔軟なカプセル化。開発者は適用時に多くの選択肢を持てます。

注:このセクションでは、教師がこの一連のコードについて話しました。分析は非常に詳細であり、紙幣はあまり詳細ではありません!

導入事​​例の分析

3Mybatisアノテーションの開発とdao実装クラスの記述方法

Mybatisエントリの場合
        ステップ1:構成ファイルを読み取る
        ステップ2:SqlSessionFactoryファクトリを作成する
        ステップ3:SqlSessionを
        作成するステップ4:Daoインターフェイスのプロキシオブジェクトを作成する
        ステップ5:Daoでメソッドを実行するステップ
        6:リソースを解放する

        注:
            マッピング構成にカプセル化するエンティティクラスをmybatisに指示する方法を忘れないでください:エンティティクラス
            の完全修飾クラス名を指定してくださいresultType = "com.itheima.domain.User"
        
        Mybatisアノテーションベースのエントリケース:
            put IUserDao .xmlが削除され、daoインターフェイスのメソッドで@Selectアノテーションを使用し、SQLステートメント
            を指定し、同時にSqlMapConfig.xmlでマッパーを構成する必要があります。class属性を使用して、の完全修飾クラス名を指定します。 daoインターフェース。
明確:
        私たちの実際の開発では、単純であるほど良いので、私たちは皆、dao実装クラスを書かない方法を採用しています。
        XMLまたは注釈構成の使用に関係なく。
        しかし、Mybatisはdao実装クラスの作成をサポートしています。

注釈の使用

day01_eesy_02mybatis_ennotation

注釈構成

MyBatisはdaoを使用してクラスを実装します

dao実装クラスの成功したクエリ結果図:

構造図

UserDaoImpl.java

package com.itheima.dao.impl;

import com.itheima.dao.IUserDao;
import com.itheima.domain.User;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

import java.util.List;

public class UserDaoImpl implements IUserDao {
    private SqlSessionFactory factory;

    public UserDaoImpl(SqlSessionFactory factory) { // 更改默认构造函数
        this.factory = factory; // 使用factory得到session
    }

    public List<User> findAll() {
        //1.使用工厂创建SqlSession对象
        SqlSession session = factory.openSession(); // 使用factory得到session
        //2.使用session执行查询所有用户的方法
        List<User> users = session.selectList("com.itheima.dao.IUserDao.findAll");//通过配置拿到sql语句
        session.close();
        //3.返回查询结果
        return users;
    }
}

MybatisTest.java

package com.itheima.test;

import com.itheima.dao.IUserDao;
import com.itheima.dao.impl.UserDaoImpl;
import com.itheima.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

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

/**
 * mybatis的入门案例
 */
public class MybatisTest {
    /**
     * 入门案例
     *
     * @param args
     */
    public static void main(String[] args) throws Exception {
        //1.读取配置文件
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3.使用工厂创建dao对象
        IUserDao userDao = new UserDaoImpl(factory);
        //4.使用代理对象执行方法
        List<User> users = userDao.findAll();
        for (User user : users) {
            System.out.println(user);
        }
        //5.释放资源
        in.close();
    }
}

現在の仕事を上手くやることによってのみ、私たちは未来を夢見て、目の前のことに集中し、まだ起こっていないことについての終わりのない心配に陥ることができます。それは物事を助けませんが、私たち自身にとって厄介です。

おすすめ

転載: blog.csdn.net/weixin_44949135/article/details/114330969