データベースとの接続を確立し、Mybatis永続層フレームワークを使用してクエリステートメントを実行する手順

1.一般に、mybatisを使用してSQLステートメントを実行するには、次の手順で実行できます。

1.通常のMavenプロジェクトを作成し、依存関係をインポートします
。mybatisの公式ドキュメントhttps://mybatis.org/mybatis-3/zh/index.htmlを開き、公式ドキュメントのガイドラインに従って次の手順を実行します。 。もちろん最初は依存関係をインポートすることです

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>x.x.x</version>
</dependency>

2. SqlSessionFactoryのインスタンスを作成する:
公式ドキュメントの紹介によると、mybatisのsqlSessionは、Statementの代わりにsqlステートメントを実行するために使用されます。sqlSessionを取得する場合は、sqlSessionFactoryを作成する必要があります。名前が示すように、このFactoryが使用されます。 SqlSesssionのインスタンスを生成します。したがって、公式ドキュメントのガイドラインに従ってsqlSessionFactoryを作成するには、コードをコピーしてsqlSessionFactoryを作成します。

String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

3. SqlSessionFactoryのインスタンスを作成するために必要なxml構成ファイルを、sqlSessionを作成する
ためのコードに記述します。

String resource = "org/mybatis/example/mybatis-config.xml";

この場所では構成ファイルが使用されます。sqlSessionFactory構成ファイルを作成して、データベースに接続するためのURL、ユーザー名、およびユーザーパスワードを構成します。マッパーもここで登録してください。したがって、構成ファイル、つまり公式の構成ファイルのデモンストレーションを作成する必要があります。

<?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="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="org/mybatis/example/BlogMapper.xml"/>
  </mappers>
</configuration>

4.準備作業はここにあります。sqlSessionFactoryを使用してsqlSessionを作成できます。

SqlSession sqlSession = MybatisUtils.getSqlSession();

5.このSqlSessionインスタンスを使用してSQLステートメントを実行します。
この部分は、2番目のセクションで詳細に紹介されています。

次に、mybatisを使用してSQLステートメントステップを実行します

1. Mavenプロジェクトを作成し、依存関係をpom.xmlにインポートして、リソースがエクスポートされないようにします。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!--父工程-->
    <groupId>com.wt</groupId>
    <artifactId>MybatisStudy</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>mybatis01</module>
    </modules>

    <!--导入依赖-->
    <dependencies>
        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.6</version>
        </dependency>
        <!--junit-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <!--在build中配置resource,防止资源不导出-->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.properties</include>
                </includes>
            </resource>

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

    <properties>
        <maven.compiler.source>15</maven.compiler.source>
        <maven.compiler.target>15</maven.compiler.target>
    </properties>

</project>

2.ツールクラスを記述します。このクラスの機能は、このクラスの静的メソッドを呼び出してSqlSessionオブジェクトを取得することです(メソッドはSqlSessionオブジェクトを返します)

package com.wt.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 MybatisUtils {
    
    
    private static SqlSessionFactory sqlSessionFactory;

    //copy官网上的代码创建SqlSessionFactory实例
    static {
    
    
        try {
    
    
            String resource = "mybatis01-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch(IOException e){
    
    
            e.printStackTrace();
        }
    }

    //这个静态的方法返回一个SqlSession实例给调用者,也就是这个工具类的工作
    public static SqlSession getSqlSession(){
    
    
        SqlSession sqlSession = sqlSessionFactory.openSession();
        return sqlSession;
    }
}

3.ファクトリインスタンスの作成に必要な構成ファイルmybatis01-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">
        <!--这个环境用来使用某一用户连接数据库,这里我使用root用户-->
        <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?useSSL=false&amp;serverTimezone=UTC"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <!--写的mapper一定要在这里注册-->
    <mappers>
        <!--注意注册的路径不是用.而是用/-->
        <mapper resource="com/wt/userDao/UserMapper.xml"/>
    </mappers>
</configuration>

---------------上記の準備が完了し、実装コードを以下に記述します---------------

4.データベース内のテーブルに基づいてエンティティクラス(pojo、javabeanとも呼ばれる)を作成します

package com.wt.pojo;

public class User {
    
    
    private int id;
    private String name;
    private String pwd;

    public User() {
    
    
    }

    public User(int id, String name, String pwd) {
    
    
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

    public int getId() {
    
    
        return id;
    }

    public void setId(int id) {
    
    
        this.id = id;
    }

    public String getName() {
    
    
        return name;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    public String getPwd() {
    
    
        return pwd;
    }

    public void setPwd(String pwd) {
    
    
        this.pwd = pwd;
    }
}

5.マッパーレイヤーのインターフェイスを記述します。mybatisでは、このインターフェイスをクラスで実装する必要はありませんが、構成ファイルのマッパータグにバインドする必要があり、実行する必要のあるSQLステートメントは次のように記述されます。このタグ

package com.wt.userDao;

import com.wt.pojo.User;

import java.util.List;

public interface UserDao {
    
    
    List<User> getUserList();
}

6.前の手順でインターフェイスをバインドする構成ファイルを作成します(公式ドキュメントからもコピーされます。もちろん、構成を変更する必要があります)。

<?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中写出接口的路径-->
<mapper namespace="com.wt.userDao.UserDao">
    <!--id对应接口中的方法,可以看成实现了这个方法-->
    <select id="getUserList" resultType="com.wt.pojo.User">
        select * from mybatis.user;
    </select>
</mapper>

7.上記が実行され、残りが実行されます。テストするテストクラスを作成します。junitパッケージがインポートされるため、テストは非常に便利です。このメソッドを直接実行するだけです。

package com.wt.userDao;

import com.wt.pojo.User;
import com.wt.utils.MybatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;

import java.util.List;

public class UserDaoTest {
    
    
    @Test
    public void test(){
    
    
        //执行sql步骤

        //1、利用工具类获取sqlSession,sqlSession来执行sql语句
        SqlSession sqlSession = MybatisUtils.getSqlSession();

        //2、sqlSession对象想要拿到sql,从逻辑上来说就从xml中拿,xml与接口绑定,则要从接口中拿
        //下面就是利用sqlSession的getMapper方法拿到mapper,有了这个mapper,就能执行接口中的方法,执行sql语句了
        UserDao mapper = sqlSession.getMapper(UserDao.class);

        //3、调用方法执行sql语句(一个方法与一个mapper中的某标签绑定,就能执行标签中的sql语句了)
        List<User> userList = mapper.getUserList();

        //这里循环输出结果
        for(User user:userList){
    
    
            System.out.println(user.getName());
        }

        //4、关闭sqlSession
        sqlSession.close();

    }
}

実行結果:
ここに画像の説明を挿入
上記の7つのステップは、mybatisを使用してSQLステートメントを実行するために使用できます。

おすすめ

転載: blog.csdn.net/kitahiragawa/article/details/112982219