IDEA は maven を使用して myBatis (乳母レベルのマルチマップ) をロードします

IDEA は maven を使用して myBatis (乳母レベルのマルチマップ) をロードします

ナニーレベルのグラフィックスとテキストのフルプロセス構成

この記事では、mybatis の公式 Web サイトが推奨する、mybatis の操作をより便利にするインターフェース指向の使用方法を使用しますが、その他の方法についてはここでは説明しません。

プロジェクトを作成する

Maven テンプレートを使用せずに新しいプロジェクトを作成し、
Maven テンプレートを使用しないでください
プロジェクト名と GroupId を入力すると
ここに画像の説明を挿入
、IDEA にいくつかのファイルとディレクトリが生成され、Maven pom が作成され
新築
ます。IDEA の Maven になりました。

IDEA で使用される Maven を表示する

サブモデルの作成

src ディレクトリを削除して新しいサブモジュールを作成できます。デフォルトでは、
サブモジュールを作成する
デフォルトで作成されたサブモジュールには親タグが自動的に書き込まれます。

親タグ

mybatis の Maven 依存関係を構成する

MavenDemo の pom.xml ファイルに、mybatis、mysql ドライバー (ドライバーのバージョンは使用するデータベースと一致する必要があることに注意してください)、および junit の依存関係を記述します。手動で mvn Web サイトにアクセスして、Maven の依存関係の記述方法を確認し
、リンク: https://mvnrepository.com/

	<dependencies>
        <!--   mybatis     -->
        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.7</version>
        </dependency>

        <!--   mysql     -->
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.13</version>
        </dependency>

        <!--   junit     -->
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

無題モジュールの下のリソース ディレクトリ リソースに mybatis 設定ファイルを作成します: 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://127.0.0.1:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="toor"/>
            </dataSource>
        </environment>
    </environments>
</configuration>

この棚からあと 10 億ポイント近くで終わりです

デモを書く

デモを作成するときも、シェルフを設定する必要があります
。src ディレクトリの下の java フォルダーに dao、pojo、utils の 3 つのパッケージを作成します。

utils パッケージの下にツール クラス MyBatisUtil を作成します。パッケージ構造と MyBatisUtil.java

package xyz.baochao.utils;

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.IOException;
import java.io.InputStream;

public class MyBatisUtil {
    
    

    //提升SqlSessionFactory作用域
    private static SqlSessionFactory sqlSessionFactory;
    static{
    
    
        try {
    
    
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }

    //方便我们直接获取SqlSession
    public static SqlSession getSqlSession(){
    
    
        return sqlSessionFactory.openSession();
    }
}

後でテストするためにデータベースにテーブルを作成します

CREATE TABLE users(
	u_id INT(20) PRIMARY KEY,
	u_name char(20),
	u_pwd char(20)
);

INSERT INTO users(u_id,u_name,u_pwd) VALUES
(1,'zs',123456),
(2,'ls',456789),
(3,'ww',789123);

mybatisは値を渡す際にエンティティクラスを使用するため、このときデータベースユーザーに対応できるUserクラスを用意してpojoパッケージ配下に配置する必要があります。

User クラスには 3 つのメンバー変数があります。IDEA は get メソッドと set メソッド、そして toString メソッドを自動的に生成します。構築メソッドのデフォルトはパラメータ構築なしです。IDEA に触れると、手が解放され、独自のメソッドを作成できるようになるとより良くなります
。コード
エンティティクラス ユーザー

dao パッケージの下にインターフェイスを作成します。これを UserDao と呼びます。これは完璧です。将来的にはインターフェイス指向になり、1 つのメソッドですべての問題が解決されます。

package xyz.baochao.dao;

import xyz.baochao.pojo.User;

import java.util.List;

public interface UserDao {
    
    
    //查询所有用户数据
    List<User> getAll();
}

UserMapper.xml の隣にキーを入力すると、今後すべての SQL ステートメントがその中に書き込まれ、分離されます。素晴らしい!

<?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="xyz.baochao.dao.UserDao">
    <!-- id 接口里的方法名  resultType 返回值类型指向User类 -->
    <select id="getAll" resultType="xyz.baochao.pojo.User">
        select * from users
    </select>
</mapper>

mybatis-config.xml ファイルに次のように記述します。

<!-- 把刚才是UserMapper.xml文件加载进mybatis主配置文件 -->
    <mappers>
        <mapper resource="xyz/baochao/dao/UserMapper.xml" />
    </mappers>

この時点で、ディレクトリ構造は次のようになります。
ディレクトリ構造

テストする前にもう 1 つ非常に重要なことがあります。それは Maven のリソース フィルタリングです。
2 つの pom.xml ファイルをすべて構成する

	<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

さて、これですべての構築が完了したので、テストしてみましょう!

テストを実施する

テストパッケージ配下に新規テストクラスを作成します パッケージ名は上記javaフォルダ配下と同じで、クラス名は管理に便利なUserDaoTestとします。

ユーザーダオテスト

package xyz.baochao.dao;

import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import xyz.baochao.pojo.User;
import xyz.baochao.utils.MyBatisUtil;

import java.util.List;

public class UserDaoTest {
    
    
    @Test
    public void test(){
    
    
        //使用工具类获取SqlSession
        SqlSession sqlSession = MyBatisUtil.getSqlSession();
        //把接口加载进来
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        //取出数据库中的所有数据放入集合
        List<User> userList = userDao.getAll();
        //遍历集合输出内容
        for (User user : userList) {
    
    
            System.out.println("user = " + user);
        }
        //关闭SqlSession
        sqlSession.close();
    }
}

テストしてみましょう:

初めて実際にエラーを報告し、ExceptionInInitializerError を報告し、それを確認したところ、リソース フィルターは正しいのですが、途方に暮れていたとき、ふと、XML 設定ファイルに中国語のコメントを書いていることに気づき、文字を確認しました。エンコーディング:

<?xml version="1.0" encoding="UTF-8"?>

いいですね、文字エンコーディングの問題です。utf-8 の真ん中にある「-」を削除してください。これは小さな水平バーです。

<?xml version="1.0" encoding="UTF8"?>

変更後は、テストを繰り返してください。

試験結果

すべてが正常で、ビルドプロセスは面倒に見えますが、実際には、jdbc の手動コードよりも何倍快適かわかりません。私は大きく息をつき、IDEA にこう言いました。「IDEA、あなたはすでに成熟したツールです。できるはずだよ、自分で異常を変えに行ったのに……」

おすすめ

転載: blog.csdn.net/qq_39950529/article/details/117170928
おすすめ