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

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

Mar 06, 2018 pm 04:15 PM
mapper mybatis インターフェース

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MyBatis動的SQLタグのSetタグ機能の詳細説明 MyBatis動的SQLタグのSetタグ機能の詳細説明 Feb 26, 2024 pm 07:48 PM

MyBatis 動的 SQL タグの解釈: Set タグの使用法の詳細な説明 MyBatis は、豊富な動的 SQL タグを提供し、データベース操作ステートメントを柔軟に構築できる優れた永続層フレームワークです。このうち、Set タグは、UPDATE ステートメントで SET 句を生成するために使用され、更新操作でよく使用されます。この記事では、MyBatis での Set タグの使用法を詳細に説明し、特定のコード例を通じてその機能を示します。 SetタグとはMyBatiで使用するSetタグです。

コンピュータのマザーボードの内部インターフェイスとは何ですか? コンピュータのマザーボードの内部インターフェイスに関する推奨される入門 コンピュータのマザーボードの内部インターフェイスとは何ですか? コンピュータのマザーボードの内部インターフェイスに関する推奨される入門 Mar 12, 2024 pm 04:34 PM

パソコンを組み立てる際、設置作業は簡単ですが、誤ってCPUラジエーターの電源線をSYS_FANに差し込んでしまうなど、配線に問題が発生することが多く、ファンは回転しますが、ファンが回転しない場合があります。コンピュータの電源がオンになると、F1 エラー「CPUFanError」が発生し、CPU クーラーがインテリジェントに速度を調整できなくなります。コンピューターのマザーボード上の CPU_FAN、SYS_FAN、CHA_FAN、および CPU_OPT インターフェイスに関する一般的な知識を共有しましょう。コンピュータのマザーボード上の CPU_FAN、SYS_FAN、CHA_FAN、および CPU_OPT インターフェイスに関する一般科学 1. CPU_FANCPU_FAN は、CPU ラジエーター専用のインターフェイスであり、12V で動作します。

MyBatisのキャッシュ機構を解析:一次キャッシュと二次キャッシュの特徴と使い方を比較 MyBatisのキャッシュ機構を解析:一次キャッシュと二次キャッシュの特徴と使い方を比較 Feb 25, 2024 pm 12:30 PM

MyBatis のキャッシュ メカニズムの分析: 1 次キャッシュと 2 次キャッシュの違いと応用 MyBatis フレームワークでは、キャッシュはデータベース操作のパフォーマンスを効果的に向上させることができる非常に重要な機能です。そのうち、一次キャッシュと二次キャッシュは、MyBatis でよく使用される 2 つのキャッシュ メカニズムです。この記事では、一次キャッシュと二次キャッシュの違いと用途を詳細に分析し、具体的なコード例を示して説明します。 1. レベル 1 キャッシュ レベル 1 キャッシュはローカル キャッシュとも呼ばれ、デフォルトで有効になっており、オフにすることはできません。 1次キャッシュはSqlSesです

Go 言語の一般的なプログラミング パラダイムと設計パターン Go 言語の一般的なプログラミング パラダイムと設計パターン Mar 04, 2024 pm 06:06 PM

最新の効率的なプログラミング言語である Go 言語には、開発者が高品質で保守可能なコードを作成するのに役立つ豊富なプログラミング パラダイムと設計パターンがあります。この記事では、Go 言語の一般的なプログラミング パラダイムと設計パターンを紹介し、具体的なコード例を示します。 1. オブジェクト指向プログラミング Go 言語では、構造体とメソッドを使用してオブジェクト指向プログラミングを実装できます。構造を定義し、その構造にメソッドをバインドすることにより、データのカプセル化と動作バインディングのオブジェクト指向機能を実現できます。パッケージマイニ

MyBatisで以下を使って文字をエスケープする方法は何ですか? MyBatisで以下を使って文字をエスケープする方法は何ですか? Feb 24, 2024 am 11:12 AM

MyBatis ではエスケープ文字以下を使用することが一般的な要件であり、実際の開発プロセスではこのような状況がよく発生します。以下では、MyBatis で以下のエスケープ文字を使用する方法を詳しく紹介し、具体的なコード例を示します。まず、SQL ステートメントで以下のエスケープ文字がどのように表現されるかを明確にする必要があります。 SQL ステートメントでは、以下の演算子は通常 " で始まります。

PHP インターフェースの概要とその定義方法 PHP インターフェースの概要とその定義方法 Mar 23, 2024 am 09:00 AM

PHP インターフェースの概要とその定義方法 PHP は、Web 開発で広く使用されているオープンソースのスクリプト言語であり、柔軟性があり、シンプルで強力です。 PHP では、インターフェイスは複数のクラス間で共通のメソッドを定義し、ポリモーフィズムを実現し、コードをより柔軟で再利用可能にするツールです。この記事では、PHP インターフェイスの概念とその定義方法を紹介し、その使用法を示す具体的なコード例を示します。 1. PHP インターフェイスの概念 インターフェイスはオブジェクト指向プログラミングにおいて重要な役割を果たし、クラス アプリケーションを定義します。

NotImplementedError() の解決策 NotImplementedError() の解決策 Mar 01, 2024 pm 03:10 PM

エラーの原因は Python にあり、Tornado で NotImplementedError() がスローされるのは、抽象メソッドまたはインターフェイスが実装されていないことが原因である可能性があります。これらのメソッドまたはインターフェイスは親クラスで宣言されますが、子クラスでは実装されません。サブクラスが適切に動作するには、これらのメソッドまたはインターフェイスを実装する必要があります。この問題を解決するには、親クラスで宣言した抽象メソッドやインターフェイスを子クラスに実装します。別のクラスから継承するクラスを使用していてこのエラーが発生した場合は、親クラスで宣言されたすべての抽象メソッドを子クラスに実装する必要があります。インターフェイスを使用していてこのエラーが発生した場合は、インターフェイスで宣言されているすべてのメソッドを、インターフェイスを実装するクラスに実装する必要があります。どちらかわからない場合は、

Honmeng システムの洞察: 実際の機能測定と使用体験 Honmeng システムの洞察: 実際の機能測定と使用体験 Mar 23, 2024 am 10:45 AM

Huawei が発表した新しいオペレーティング システムとして、Hongmeng システムは業界で大きな波紋を引き起こしました。米国の禁止措置を受けてのファーウェイの新たな試みとして、紅夢システムには大きな期待と期待が寄せられている。最近、幸運にもHongmengシステムを搭載したHuaweiの携帯電話を入手したので、一定期間使用して実際にテストした後、Hongmengシステムの機能テストと使用体験を共有します。まず、Hongmeng システムのインターフェースと機能を見てみましょう。 Honmeng システムは全体的に Huawei 独自のデザインスタイルを採用しており、シンプル、明確、スムーズな操作性を備えています。デスクトップ上には、さまざまな

See all articles