小さなプロジェクトの変革はすぐにmybatisを導入します

創造を続け、成長を加速させましょう!「ナゲッツデイリーニュープラン・6月アップデートチャレンジ」に参加した初日です。クリックしてイベントの詳細をご覧ください。

プロジェクトの背景

プロジェクトの当初は、プラグインおよび機能の補足として位置付けられ、既存のOAが各プロセスのデータをカウントするためのレポート機能を提供していました。

機能は非常にシンプルです。開発速度を考慮して、開発はspringbootプロジェクト、依存関係のみが使用されます。spring-boot-starter-web, spring-boot-starter-jdbc, sqljdbc4, lombook

を使用し@Beansql必要なJdbcTemplateインスタンスを挿入し、sql後続のすべての操作はを使用して実行さtemplate.queryForList(sqlStr)れます。

無視されたSQLは複雑であり、文字列テンプレートはjava8まだサポートされていないため、コード内のSQLは次のようになります。

image.png

読み取りと変更は非常に不便です。決定はまだ導入することmybatisです。主要な要求は、SQLの読み取り可能性と保守性を改善することです。

改造を開始

対応するインポートstart

pom.xmlspringboot専用mybatis依存関係を追加する

<dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.2</version>
</dependency>
复制代码

application.ymlの補足構成

mybatissqlxmlファイル

mybatis:
  mapper-locations:
    - classpath:mybaits/*.xml
复制代码

補足フォルダ

プロジェクトに提案されているディレクトリレイアウトは次のとおりです。

|- src\main\java
    |- com.xx
        |- bean
        |- mapper
        xxxApplication
|- src\main\resources
    |- static
    |- mybaits
        |- Request.xml
    application.yml
复制代码

xxxApplicationこのスタートアップクラスの同じレイヤーに、mapper関連するインターフェイスファイルを格納xxMapperする作成します。mybatisフレームワークに認識させるには、インターフェイスでクラスアノテーション@Mapperを使用する必要があります。コード例は次のとおりです

@Mapper
public interface RequestMapper {
}
复制代码

フォルダの下mybatisに、xxMapperに対応するxmlファイルを保存します

mybatisの公式ドキュメントによると、sql保存の標準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="org.mybatis.example.BlogMapper">
  <select id="selectBlog" resultType="Blog">
    select * from Blog where id = #{id}
  </select>
</mapper>
复制代码

mapperタグ属性namespaceを変更して、自分の属性に対応させる必要があります。同じ形式で新しいクエリを補足します。xxMapper<select></select>

最後にJdbcTemplate、実装sqlにより、仕様は対応するMapper + xmlファイルになり、関連する関数呼び出しが調整され、プロジェクト全体の変換が基本的に完了します。

要約する

mybatis-spring-boot-starterこれのおかげでstart、さらにいくつかのデフォルトの規則に従い、このプロジェクトにmybatis適用する。この変換の最大の変更は、元のSQLをxxMapper + xx.xml2つのです。

あなたはで書かxml

image.png

おすすめ

転載: juejin.im/post/7102332487434502157