ホームページ > バックエンド開発 > PHPチュートリアル > Mybatisの利用(マッパーインターフェース方式)

Mybatisの利用(マッパーインターフェース方式)

赶牛上岸
リリース: 2023-03-20 20:24:02
オリジナル
7036 人が閲覧しました

Mapperインターフェースを使用すると、インターフェース実装クラスを記述する必要がなく、データベース操作を直接完了できるため、簡単で便利です。 誰もが Mapper インターフェイスをよりよく学習できるように、編集者は、必要な人々を助けることを願って、Mapper インターフェイスに関するいくつかの知識ポイントをまとめました。

構造図から始めましょう:
Mybatisの利用(マッパーインターフェース方式)
以下は具体的なコードです:
1. User.java

2. UserMapper.java のアイデアです。インターフェース指向のプログラミングは依然として非常に重要です。これは、このブログ投稿の最も重要な部分でもあります。

インターフェース定義には次の特徴があります:

    Mapperインターフェースのメソッド名は、UserMapper.xmlで定義された各SQLのIDと同じ名前になります。
  1. Mapperインターフェースメソッドの入力パラメータの型は、UserMapper.xmlで定義されているSQLのparameterTypeの型と同じです。口Mapperインターフェイスの戻り値の型とUserMapper.xmlで定義されているSQLのresulttype型 テーブルの作成方法と同じで、注釈@Param
  2. 实体类中的的get/set方法以及构造方法及toString方法就不贴了
    public class User {    
        private int id;    
        private String name;    
        private int age;
    }
    ログイン後にコピー

  3. III、UserMappers.xml
がここにあることに注意してください

1. の名前空間 違い

package com.mi.mapper;import org.apache.ibatis.annotations.Param;import com.mi.beans.User;public interface UserMapper {
    void createTable (@Param("tableName") String tableName);    void add(User user);    void del(int id);    void update(User user);
    User getUser(int id);
    User[] list();
}
ログイン後にコピー
ログイン後にコピー

完全なコードは次のとおりです: テーブルの作成、CRUD

<mapper namespace="com.mi.mapper.UserMapper">
ログイン後にコピー
ログイン後にコピー
IV、conf.xml
ここで 2 つの設定が必要です

JDBC 接続

mapper.xml の設定

create table ${tableName}...
ログイン後にコピー

    5. SqlSessionUtil.java
  • ここでツール クラスを書きました。主な目的は sqlSession を取得することです。データベースを操作するたびに、もう一度書きますので、一度カプセル化します。

    <mapper namespace="com.mi.mapper.UserMapper">
        
        
            create table ${tableName} (id int primary key auto_increment,name varchar(20),age int)    
        
        
            insert into t_user(name,age) value(#{name},#{age})    
        
        
            delete from t_user where id = #{id}    
        
        
            update t_user set name=#{name},age=#{age} where id=#{id}    
        
        
        
        
    ログイン後にコピー
  • 、 MyTest.java

    上記のツールクラス sqlSession を通じて、最も重要なことは次の文です
  • <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
      "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration>
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC" />
                <!-- 配置数据库连接信息 -->
                <dataSource type="POOLED">
                    <property name="driver" value="com.mysql.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
                    <property name="username" value="root" />
                    <property name="password" value="root" />
                </dataSource>
            </environment>
        </environments>
            <!-- 注册userMapper.xml文件 -->
        <mappers>
            <mapper resource="com/mi/mapping/userMappers.xml"/>
        </mappers></configuration>
    ログイン後にコピー

MyBatis はマッパーインターフェイスを実装します。 動的プロキシを使用すると、実行インターフェイスでの準備が簡単になります。
sqlSession.commit() と sqlSession.close() を忘れないように注意してください。そうしないと、実行中にエラーは報告されませんが、データベースには変更がありません。ただし、実行中にエラーは報告されません。実行してもデータベースに変更はなく、インターフェース実装クラスを記述する必要がなく、データベースの操作を直接完了できるため、簡単で便利です。

構造図から始めましょう:

以下は具体的なコードです:

1. User.java

package com.mi.util;import java.io.InputStream;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.
session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;public class SqlSessionUtil 
{
      public static SqlSession getSqlSession() throws Exception{
      String resource = "conf.xml";
      //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
      InputStream is = Resources.getResourceAsStream(resource);
      //构建sqlSession的工厂
      SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
      //创建能执行映射文件中sql的sqlSession
      SqlSession sqlSession = sessionFactory.openSession();
      return sqlSession;
   }
}
ログイン後にコピー

2. UserMapper.java これはマッパーインターフェイスとインターフェイスの概念です。指向のプログラミングは依然として非常に重要です。これは、このブログ投稿の最も重要な部分でもあります。

インターフェース定義には次の特徴があります:



Mybatisの利用(マッパーインターフェース方式)
Mapperインターフェースのメソッド名は、UserMapper.xmlで定義された各SQLのIDと同じ名前になります。

Mapperインターフェースメソッドの入力パラメータの型は、UserMapper.xmlで定義されているSQLのparameterTypeの型と同じです。口Mapperインターフェイスの戻り値の型とUserMapper.xmlで定義されているSQLのresulttype型 テーブルの作成方法と同じで、注釈@Param

UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
ログイン後にコピー

III、UserMappers.xml

がここにあることに注意してください
  1. 1. の名前空間

    这里我只执行了创建表的方法.
    package com.mi.test;import org.apache.ibatis.session.SqlSession;import com.mi.beans.User;import com.mi.mapper.UserMapper;
    import com.mi.util.SqlSessionUtil;public class MyTest {
        public static void main(String[] args) throws Exception {
            SqlSession sqlSession = SqlSessionUtil.getSqlSession();
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            userMapper.createTable("t_user");
            sqlSession.commit();
            sqlSession.close();
        }
    }
    ログイン後にコピー

    完全なコードは次のとおりです: テーブルの作成、CRUD
  2. 实体类中的的get/set方法以及构造方法及toString方法就不贴了public class User {    private int id;    private String name;    private int age;
    ログイン後にコピー
  3. four、conf.xml

  4. ここで 2 つのことを設定する必要があります
  5. JDBC 接続

mapper.xml の設定

package com.mi.mapper;import org.apache.ibatis.annotations.Param;import com.mi.beans.User;public interface UserMapper {
    void createTable (@Param("tableName") String tableName);    void add(User user);    void del(int id);    void update(User user);
    User getUser(int id);
    User[] list();
}
ログイン後にコピー
ログイン後にコピー

5. SqlSessionUtil.java ここでツール クラスを書きました。主な目的は sqlSession を取得することです。データベースを操作するたびに、もう一度書きますので、一度カプセル化します。
<mapper namespace="com.mi.mapper.UserMapper">
ログイン後にコピー
ログイン後にコピー

、 MyTest.java

上記のツールクラス sqlSession を通じて、最も重要なことは次の文です

create table ${tableName}...
ログイン後にコピー

MyBatis はマッパーインターフェイスを実装します。 動的プロキシを使用すると、実行インターフェイスでの準備が簡単になります。

sqlSession.commit() と sqlSession.close() を忘れないように注意してください。そうしないと、実行中にエラーは報告されませんが、データベースは変更されません。
  • <mapper namespace="com.mi.mapper.UserMapper">
        
        
            create table ${tableName} (id int primary key auto_increment,name varchar(20),age int)    
        
        
        
            insert into t_user(name,age) value(#{name},#{age})    
        
        
        
            delete from t_user where id = #{id}
         
        
        
            update t_user set name=#{name},age=#{age} where id=#{id}    
        
        
        
        
        
    ログイン後にコピー

    関連する推奨事項:

  • mybatisページング プラグインの詳しい説明 pageHelper インスタンス

  • Oracle と Mybatis を組み合わせてテーブルから 10 個のデータを実装します

    Spring Boot、Mybatis、Redis は最新の Web プロジェクトを迅速に構築します


    以上がMybatisの利用(マッパーインターフェース方式)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート