05-springBootエンジニアリングにおけるMyBatisフレームワークの統合実現と原理分析
6902 ワード
05-springBootエンジニアリングにおけるMyBatisフレームワークの統合実現と原理分析
springboot
9月29日にリリース
MyBatisの初歩的な分析を統合
概要
Mybatisは優れた永続層フレームワークであり、下位層はJDBCに基づいてデータベースとのインタラクションを実現している.そしてJDBC操作の基礎の上でパッケージングと最適化をして、それは柔軟なSQLのカスタマイズ、パラメータと結果セットのマッピング方式を借りて、もっとよく現在のインターネット技術の発展に適応しました.Mybatisフレームワークの簡単なアプリケーションアーキテクチャを図に示します.現在のインターネットアプリケーションでは、mybatisフレームワークは通常springフレームワークによってリソース統合され、データ層技術としてデータインタラクティブな操作を実現します.
準備作業
ステップ1:プロジェクトmoduleを作成します.たとえば、次のようにします.
ステップ2:依存の追加
mysql駆動依存
Spring jdbc依存
mybatis starter依存
ステップ2:アプリケーション.propertiesプロファイルに簡易構成を追加する
接続プールの構成
mybatis構成
環境テストコード実装
src/test/javaディレクトリにテストクラスを追加し、mybatisフレームワークの統合を基本テストします.コードは以下の通りです.
SpringBoot足場プロジェクトでは、SpringフレームワークはMyBatisフレームワークの下位構成に基づいてSqlSessionFactoryオブジェクトを作成し、このファクトリオブジェクトからSqlSessionを作成し、最後にSpringkuフレームワークに基づいてテストクラスにSqlSessionオブジェクトを注入します.次に、SqlSessionオブジェクトを介してデータベースとのセッションを実現できます.
MyBatisビジネスコードの統合と原理分析
ビジネスの説明
SpringBoot足場エンジニアリングによるMyBatisフレームワークの統合により、商品ライブラリ内の商品データの照会業務を実現します.
APIアーキテクチャ設計
ビジネスタイミングチャート分析
ビジネスコードの設計と実現
ステップ1:商品モジュールPOJOオブジェクトタイプ(このオブジェクトに基づいて商品データを格納する)を定義し、コードは以下の通りである.
第2歩:商品モジュール持続層オブジェクトGoodsDaoインタフェースと方法マッピングを定義し、コードは以下の通りである.
GoodsDaoインタフェースおよびメソッド定義
GoodsDaoインタフェースマッピングファイルおよびSQLマッピング定義
テストコードの作成と実行
ユニットテストクラスを定義し、GoodsDaoメソッドのユニットテストを行います.たとえば、次のようにします.
図に示すように、テスト実行、下位API分析:
テスト運転中のBUG分析 idea@autowired注記エラープロンプト構成(図: ) BindingException、図示: ユニットテストクラス位置エラー、図に示すように: 対応するマッピング要素が見つかりません.図に示すように、 ビジネス・レベルの記録MyBatis最下位SQLセッションの時間
ビジネスの説明
データ永続層apiメソッド呼び出しの実行時間を記録するビジネスがあります.どのように実現しますか?要求:1)ログをユニットテストクラスに直接書き込むことはできません.2)データ永続層実装クラスを変更することはできません.
APIアーキテクチャ設計
図に示すように、ログ記録業務に基づいてAPI設計を行う.
ビジネスタイミングチャート分析
図に示すように、商品の照会とログ記録を行い、その運行タイミング分析を行う.
ビジネスコードの設計と実現
ステップ1:GoodsServiceインタフェースを定義します.コードは次のとおりです.
ステップ2:GoodsServiceImpl実装クラスを定義し、ログを記録します.コードは次のとおりです.
図に示すように、ログAPIアプリケーション分析:
テストコードの作成と実行
ユニットテストクラスGoodsServiceTestsを作成し、GoodsServiceオブジェクトメソッドのユニットテストを行います.たとえば、次のようにします.
テスト運転中のBUG分析 NullPointerException、図に示すように: NoSuchBeanDefinitionException(図示: )
springboot
9月29日にリリース
MyBatisの初歩的な分析を統合
概要
Mybatisは優れた永続層フレームワークであり、下位層はJDBCに基づいてデータベースとのインタラクションを実現している.そしてJDBC操作の基礎の上でパッケージングと最適化をして、それは柔軟なSQLのカスタマイズ、パラメータと結果セットのマッピング方式を借りて、もっとよく現在のインターネット技術の発展に適応しました.Mybatisフレームワークの簡単なアプリケーションアーキテクチャを図に示します.現在のインターネットアプリケーションでは、mybatisフレームワークは通常springフレームワークによってリソース統合され、データ層技術としてデータインタラクティブな操作を実現します.
準備作業
ステップ1:プロジェクトmoduleを作成します.たとえば、次のようにします.
ステップ2:依存の追加
mysql駆動依存
mysql
mysql-connector-java
runtime
Spring jdbc依存
org.springframework.boot
spring-boot-starter-data-jdbc
mybatis starter依存
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.1.1
ステップ2:アプリケーション.propertiesプロファイルに簡易構成を追加する
接続プールの構成
spring.datasource.url=jdbc:mysql:///dbgoods?serverTimezone=GMT%2B8&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
mybatis構成
mybatis.mapper-locations=classpath:/mapper/*/*.xml
環境テストコード実装
src/test/javaディレクトリにテストクラスを追加し、mybatisフレームワークの統合を基本テストします.コードは以下の通りです.
package com.cy.pj.goods.dao;
import java.sql.Connection;
import org.apache.ibatis.session.SqlSession;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class MyBatisTests {
@Autowired
private SqlSession sqlSession;
@Test
public void testGetConnection() {
Connection conn=sqlSession.getConnection();
System.out.println("connection="+conn);
}
}
SpringBoot足場プロジェクトでは、SpringフレームワークはMyBatisフレームワークの下位構成に基づいてSqlSessionFactoryオブジェクトを作成し、このファクトリオブジェクトからSqlSessionを作成し、最後にSpringkuフレームワークに基づいてテストクラスにSqlSessionオブジェクトを注入します.次に、SqlSessionオブジェクトを介してデータベースとのセッションを実現できます.
MyBatisビジネスコードの統合と原理分析
ビジネスの説明
SpringBoot足場エンジニアリングによるMyBatisフレームワークの統合により、商品ライブラリ内の商品データの照会業務を実現します.
APIアーキテクチャ設計
ビジネスタイミングチャート分析
ビジネスコードの設計と実現
ステップ1:商品モジュールPOJOオブジェクトタイプ(このオブジェクトに基づいて商品データを格納する)を定義し、コードは以下の通りである.
package com.cy.pj.goods.pojo;
import java.util.Date;
/** pojo */
public class Goods {
private Long id;
private String name;
private String remark;
private Date createdTime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Date getCreatedTime() {
return createdTime;
}
public void setCreatedTime(Date createdTime) {
this.createdTime = createdTime;
}
}
第2歩:商品モジュール持続層オブジェクトGoodsDaoインタフェースと方法マッピングを定義し、コードは以下の通りである.
GoodsDaoインタフェースおよびメソッド定義
package com.cy.pj.goods.dao;
import com.cy.pj.goods.pojo.Goods;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/** ,
* @Mapper MyBatis , , mybatis
* mybatis , spring .
* */
@Mapper
public interface GoodsDao {
List findGoods();
}
GoodsDaoインタフェースマッピングファイルおよびSQLマッピング定義
テストコードの作成と実行
ユニットテストクラスを定義し、GoodsDaoメソッドのユニットテストを行います.たとえば、次のようにします.
package com.cy.pj.goods.dao;
@SpringBootTest
public class GoodsDaoTests {
@Autowired
private GoodsDao goodsDao;
@Test
void testFindGoods(){
List list=goodsDao.findGoods();
for(Goods g:list){
System.out.println(g);
}
}
}
図に示すように、テスト実行、下位API分析:
テスト運転中のBUG分析
ビジネスの説明
データ永続層apiメソッド呼び出しの実行時間を記録するビジネスがあります.どのように実現しますか?要求:1)ログをユニットテストクラスに直接書き込むことはできません.2)データ永続層実装クラスを変更することはできません.
APIアーキテクチャ設計
図に示すように、ログ記録業務に基づいてAPI設計を行う.
ビジネスタイミングチャート分析
図に示すように、商品の照会とログ記録を行い、その運行タイミング分析を行う.
ビジネスコードの設計と実現
ステップ1:GoodsServiceインタフェースを定義します.コードは次のとおりです.
package com.cy.pj.goods.service;
import com.cy.pj.goods.pojo.Goods;
import java.util.List;
public interface GoodsService {
List findGoods();
}
ステップ2:GoodsServiceImpl実装クラスを定義し、ログを記録します.コードは次のとおりです.
package com.cy.pj.goods.service;
import com.cy.pj.goods.dao.GoodsDao;
import com.cy.pj.goods.pojo.Goods;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class GoodsServiceImpl implements GoodsService{
private static final Logger log=
LoggerFactory.getLogger(GoodsServiceImpl.class);
@Autowired
private GoodsDao goodsDao;
@Override
public List findGoods() {
long t1=System.currentTimeMillis();
List list=goodsDao.findGoods();
long t2=System.currentTimeMillis();
log.info("findGoods()->t2-t1={}",t2-t1);//
return list;
}
}
図に示すように、ログAPIアプリケーション分析:
テストコードの作成と実行
ユニットテストクラスGoodsServiceTestsを作成し、GoodsServiceオブジェクトメソッドのユニットテストを行います.たとえば、次のようにします.
package com.cy.pj.goods.service;
import com.cy.pj.goods.pojo.Goods;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest
public class GoodsServiceTests {
@Autowired
private GoodsService goodsService;
@Test
void testFindGoods(){
List list=goodsService.findGoods();
for(Goods g:list){
System.out.println(g);
}
}
}
テスト運転中のBUG分析