mybatis- mybatisの概要

序文

MyBatisは、カスタマイズされたSQL、ストアドプロシージャ、および高度なマッピングをサポートする優れた永続性レイヤーフレームワークです。MyBatisは、ほとんどすべてのJDBCコードを回避し、パラメーターを手動で設定して結果セットを取得します。MyBatisは、シンプルなXMLまたは注釈を使用して、ネイティブタイプ、インターフェース、およびJava POJO(Plain Old Java Objects)をデータベースのレコードとして構成およびマップできます。

2つのmybatisエントリ

こんにちは、Xiaobai、ここでmavenプロジェクトを自分で作成する必要があります。構成とインストールを理解していない場合、私のツールシリーズの構成mavenのアイデアが表示されます。データベースを学習していない場合は、私のsqlシリーズのチュートリアルを表示できます。 MySQLのインストールチュートリアルを非表示にしてください。

ここに画像の説明を挿入

2.1 pom.xml

内部pomは、現在使用されていないmybatisに依存する一部のjunitを学習することですが、空を節約した次のクラスで使用される場合があります。

ここに画像の説明を挿入

<dependencies>
        <!-- mybatis support-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <!-- log4j support -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <!-- junit support -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!-- mysql support -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>6.0.5</version>
        </dependency>

    </dependencies>
复制代码

2.2 log4j.properties

log4j.propertiesは、ログ情報をより適切に表示してsqlを出力するように構成されています。リソースディレクトリに新しいlog4j.properties作成します内容は次のとおりです。マッパーパッケージのマッピングパスを白で置き換えてください。それ以外の場合、ログは出力されません。泣いて、彼の兄弟のブログとパブリックアカウントを保持することは無意味です。

### 设置###
log4j.rootLogger = info,stdout

### 输出信息到控制抬 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
## 这边要替换成你的mapper包映射路径哟
log4j.logger.com.zszxz.mybatis.mapper = debug
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

# mysql安装https://zhuanlan.zhihu.com/p/37152572
复制代码

2.3データベーステーブルの作成

ここでXiaobaiが使用するmysql5.7バージョン、テーブルを構築するための情報は次のとおりです。これは学生クラスであり、メインフィールドは学生テーブルの主キー、学生名、学生番号であり、次に2つのレコードを挿入しました。なぜ弟が作成したのですか学生エンティティ。学生は学習が大好きなので、学生は最も単純であり、兄弟は自分自身を永久に学生として扱います。

ここに画像の説明を挿入

CREATE TABLE `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `name` varchar(255) DEFAULT NULL COMMENT '学生姓名',
  `number` int(11) DEFAULT NULL COMMENT '学生编号',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `mybatis`.`student`(`id`, `name`, `number`) VALUES (1, '知识追寻者', 996);
INSERT INTO `mybatis`.`student`(`id`, `name`, `number`) VALUES (2, 'youku1327', 555);

复制代码

2.4学生団体

学生エンティティは、SQLステートメントをクエリして、返された結果をエンティティにマップします。

/**
 1. @Author lsc
 2. @Description <p> </p>
 3. @Date 2019/12/1 20:07
 */
public class Student {

    // id
    private String id;
    // 学生姓名
    private String name;
    // 学生编号
    private String number;

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }
}
复制代码

2.5マッパー

次の各文は古典的です。異教の場合は、聖書を学ぶように信仰深く扱ってください。

  • StudentMapper.xmlは、xmlファイル内のmybatisのDTDであり、記述したSQLロジックです。
  • ここに存在することに注意してくださいnamespace、私たちStudentMapperインタフェースに対応するパスをマッピングするという性質が、
  • mapper.xmlはマッパーインターフェースに対応しています。混乱しないようにしてください。通常は名前が1つであり、正式な習慣はマッパーで終わることです。
  • StudentMapper.xmlが作成される場所は、リソースディレクトリのマッパーサブディレクトリにあります。本当に白人の場合は、カスタマイズしないでください。間違っています。
  • メソッド内StudentMapperはgetStudentであり<select>、ラベルの内側に対応するIDの一意の識別子のクエリ方法を表します。
  • resultType 内部には学生エンティティのマッピングパスがあります。クラス名を入力しないでください。エラーが発生した場合は、確認するための助けを見つけることができません。
  • <select> ラベルの内容はSQLロジックで、弟はテーブル全体に対してクエリを実行しました。

ここに画像の説明を挿入

StudentMapper.xml

<?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="com.zszxz.mybatis.mapper.StudentMapper">

    <!-- 查询学生-->
    <select id="getStudent" resultType="com.zszxz.mybatis.entity.Student">
        select * from student
    </select>

</mapper>
复制代码

StudentMapper

public interface StudentMapper {

    // 查询学生
    List<Student> getStudent();
}
复制代码

2.6 mybatis-config.xml-itは設定です

mybatis-config.xmlはmybatisコンテンツを構成するもので、Xiaobaiはここであまり多くを知る必要はありません。小説に古典的な文があります。知っているほど、早く死んで、Yang Xiuを学びたいですか、才能はありますが、曹操はクリックされませんでした!私はあなたが知っておくべきすべてを書きます;このファイルの場所はリソースディレクトリに置かれます;

<?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">

<!-- mybaits配置 -->
<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://192.168.0.106:3306/mybatis"/>
                <!-- 账号-->
                <property name="username" value="root"/>
                <!--密码 -->
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 引入自定义mapper.xml -->
    <mappers>
        <mapper resource="mapper/StudentMapper.xml"/>
    </mappers>
</configuration>
复制代码

2.7 Mybatisの実行

メインクラスを作成し、mybatisを実行するように設定してください!

  • SqlSessionFactoryBuilderは構築クラスであり、SqlSessionFactoryを取得するために、SQLセッション(セッション)ファクトリと呼ぶことができます。
  • SqlSessionFactoryファクトリには多数のSqlSessionがあり、各スレッドにはSqlSession(SQLセッション)が必要ですopenSession()。fメソッドを使用してSqlSessionを取得します。
  • sql操作を実行した後、sqlSessionを閉じることを忘れないでください。そうしないと、ディスクがクラッシュした後に私に連絡しないでください。
    public static void main(String[] args) throws IOException {

        // 资源路径
        String resource = "mybatis-config.xml";
        // 配置mybatis获得输入流
        InputStream inputStream = Resources.getResourceAsStream(resource);
        // 创建 SqlSessionFactory
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //从 SqlSessionFactory 中获取 SqlSession
        SqlSession sqlSession = sqlSessionFactory.openSession();
        // 使用 SqlSession 查询
        List<Student> getStudent = sqlSession.selectList("getStudent");
        for (Student student : getStudent){
            System.out.println("学生姓名:"+student.getName()+"   学生编号:"+student.getNumber());
        }
        // 关闭 SqlSession
        sqlSession.close();
    }
复制代码

2.8 mybatisからのトロフィー

ここに画像の説明を挿入

3つのソースコードはどこにありますか

Xiaobaiは、自分のノックを試みるように書いています。そうでない場合は、私の兄弟のソースコードを見てください。youku1327のgithub

ここに画像の説明を挿入

おすすめ

転載: juejin.im/post/5e959b34e51d4546fe263136