ホームページ  >  記事  >  Java  >  Java での MyBatis のクイック スタート例を分析する

Java での MyBatis のクイック スタート例を分析する

PHPz
PHPz転載
2023-05-10 08:16:071469ブラウズ

    1. MyBatis とは

    簡単に言えば、MyBatis は、JDBC 開発を簡素化するために使用される優れた永続層フレームワークです。 MyBatis 自体は Apache のオープン ソース プロジェクトで、当初は iBatis と呼ばれていましたが、2010 年にプロジェクトは Google Code に移行され、MyBatista に名前が変更されました。 2013 年にプロジェクトは GitHub に移行されました。

    概念における永続層をどのように理解していますか? これは、データをデータベースに保存するコード層を指します。巨大なコードでは、各コードが単一の責任を持つようにするために、同じデータベース上で動作するコードを 永続層 と呼びます。同時に、JavaEE 3 層アーキテクチャでは、プレゼンテーション層がページ表示を担当し、ビジネス層がロジック処理を担当し、永続層がデータの保存を担当します。データベース内で。

    フレームワークとは何ですか? フレームワークとは、半完成ソフトウェアを指し、再利用可能な汎用のソフトウェア基本コード モデルのセットです。フレームワークに基づいて開発を行うと、コストが大幅に節約され、より標準化され、汎用性が高く、拡張性が高くなります。

    2. JDBC の欠点

    MyBatis を使用して JDBC 開発を簡素化していますが、JDBC の欠点は何でしょうか?

    ハードコーディング

    まず、ドライバーを登録してリンクを取得する際、パスワードなどの文字列情報が変更された場合は手動で変更する必要があります。次に、SQL ステートメントを定義するときに文字列を使用すると、コードの保守性も低下します。

    複雑な操作

    パラメータを手動で設定し、結果セットを手動で設定する場合、操作が煩雑になるという問題があります。

    JDBC で使用される次のコードを示します:

    Java での MyBatis のクイック スタート例を分析する

    3.Mybatis は JDBC 開発を簡素化します

    JDBC 開発にはハード コーディングがあるため、 、操作が面倒な欠点があるため、これらの問題を解決するにはどうすればよいですか?まず、文字列を別の構成ファイルに記述して JDBC ハード コーディングの問題を解決し、次に、面倒な JDBC オペレーション コードを自動的に完成させる方法を使用できます。したがって、JDBC 開発を簡素化するために MyBatis を使用します。

    MyBatis は、ほぼすべての JDBC コードと、パラメーターの設定と結果セットの取得の作業を排除します。

    例: パラメータ情報を構成ファイルに書き込み、ハードコーディングの問題を解決するために将来使用するときにそれを直接読み取ります

    <environment id="test">
                <transactionManager type="JDBC"/>
                <dataSource type="POOLED">
                    <!--数据库连接信息-->
                    <property name="driver" value="com.mysql.jdbc.Driver"/>
                    <property name="url" value="jdbc:mysql:///mybatis?useSSL=false"/>
                    <property name="username" value="root"/>
                    <property name="password" value="1234"/>
                </dataSource>
            </environment>
        </environments>

    永続層には多くの選択肢がありますフレームワークとしては市販されていますが、国内市場ではMyBatisの利用シェアが高いです。

    4. MyBatis クイック スタート | 実践的なプロジェクトの詳細な説明

    MyBatis の使用を開始するには、実際の操作を通じてユーザー テーブル内のすべてのデータをすばやくクエリします。 user table を作成して user object に入れ、お互いをそれぞれセットに入れて操作を完了します。次の手順に従って操作を完了します。

      #ユーザー テーブルの作成、データの追加
    1. #モジュールの作成、座標のインポート
    2. MyBatis コア構成ファイルを作成し、接続情報を置き換えてハードコーディングの問題を解決します。
    3. SQL マッピング ファイルを作成して SQL ステートメントを均一に管理し、コーディングを解決します。問題
    4. コードの記述
    5. コードを記述するときは、次の手順を使用します。

    POJO クラスを定義する
    1. コア構成ファイルをロードし、sqlSessionFactory オブジェクトを取得します。
    2. sqlSession オブジェクトを取得し、SQL ステートメントを実行します
    3. リソースのリリース
    4. 全体的なプロジェクト構造の表示:

    #次のデモでは、詳細なデモを使用して、 MyBatis をすぐに始めましょう: Java での MyBatis のクイック スタート例を分析する

    ユーザー テーブルを作成してデータを追加します:

    create database mybatis;
    use mybatis;
    drop table if exists tb_user;
    create table tb_user(
    	id int primary key auto_increment,
    	username varchar(20),
    	password varchar(20),
    	gender char(1),
    	addr varchar(30)
    );
    INSERT INTO tb_user VALUES (1, &#39;小张&#39;, &#39;abc&#39;, &#39;男&#39;, &#39;北京&#39;);
    INSERT INTO tb_user VALUES (2, &#39;小李&#39;, &#39;123&#39;, &#39;女&#39;, &#39;天津&#39;);
    INSERT INTO tb_user VALUES (3, &#39;小美&#39;, &#39;456&#39;, &#39;女&#39;, &#39;上海&#39;);

    MySQL データベースが使用されますここでは、navicat がデータベース視覚化ツールとして使用されています。

    Java での MyBatis のクイック スタート例を分析する

    アイデアでモジュールを作成し、座標をインポートします。

    アイデアで [新しいプロジェクト] をクリックし、ビルド システムとして Maven を選択し、プロジェクト名 (MyBatis-demo) を入力します。ここでは が使用されています)、グループ ID とアーティファクト ID を設定し、[作成] をクリックします。次に、依存関係をインポートし、次の依存関係コードを pom.xml ファイルに配置します。

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>x.x.x</version>
    </dependency>
    次に、mysql 依存関係、junit 座標、および logback 座標をインポートし、logback.xml 構成ファイルをリソースに貼り付けます。 ##
    <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13</version>
                <scope>test</scope>
            </dependency>
            <!-- 添加slf4j日志api -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.20</version>
            </dependency>
            <!-- 添加logback-classic依赖 -->
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.2.3</version>
            </dependency>
            <!-- 添加logback-core依赖 -->
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.2.3</version>
            </dependency>

    MyBatis コア構成ファイルを作成します:

    MyBatis-demo/src/main/resources に新しい構成ファイル mybatis.config.xml を作成します。

    <?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:///mybatis?useSSL=false"/>
                    <property name="username" value="root"/>
                    <property name="password" value="abc123"/>
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <!--加载sql的映射文件-->
            <mapper resource="UerMapper.xml"/>
        </mappers>
    </configuration>
    SQL マッピング ファイルを作成します:

    SQL マッピング ファイル UserMapper.xml を MyBatis-demo/src/main/resources に追加します。

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="test">
        <select id="selectAll" resultType="com.example.pojo.User">
            select * from tb_user;
        </select>
    </mapper>
    MyBatis のコア構成ファイルを変更して、SQL マッピング ファイルをロードします。
      <mappers>
            <!--加载sql的映射文件-->
            <mapper resource="UserMapper.xml"/>
      </mappers>

    上記の操作を完了したら、コーディングを開始できます。まず、POJO クラスを定義します:

    package com.example.pojo;
    public class User {
        private Integer id;
        private String username;
        private String password;
        private String gender;
        private String addr;
        public Integer getId() {
            return id;
        }
        public String getUsername() {
            return username;
        }
        public String getPassword() {
            return password;
        }
        public String getGender() {
            return gender;
        }
        public String getAddr() {
            return addr;
        }
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", username=&#39;" + username + &#39;\&#39;&#39; +
                    ", gender=&#39;" + gender + &#39;\&#39;&#39; +
                    ", addr=&#39;" + addr + &#39;\&#39;&#39; +
                    &#39;}&#39;;
        }
    }

    コア構成ファイルをロードし、sqlSessionFactory を取得しますオブジェクト:

    まず、MyBatisDemo.java ファイルを作成し、main メソッドを追加して、コードを記述する必要があります。

    public class MyBatisDemo {
        public static void main(String[] args) throws IOException {
        	//加载MyBatis核心配置文件
            String resource = "mybatis.config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        }
    }

    获取sqlSession对象,执行sql语句:

    //获取SqlSession对象,用它来执行sql
            SqlSession sqlSession=sqlSessionFactory.openSession();
            //执行sql
            List<User> users = sqlSession.selectList("test.selectALL");
            System.out.println(users);
    		//释放资源
            sqlSession.close();

    到这里我们就完成了整个项目的构建,接下来我们运行程序,可以看到,我们成功的查询到tb_user中的数据!

    Java での MyBatis のクイック スタート例を分析する

    以上がJava での MyBatis のクイック スタート例を分析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。