今日はJPAプロジェクトを使用して行うことを説明するページネーションありません
あなたは友人を初めて使用する場合はご返送ください
前:マイクロプロジェクトを(A)
Mavenの統合
ファイルにポンポンdependencies
次の依存関係の依存関係をインポートします
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
その後、プロジェクトを再起動して
、我々は最高のプロジェクトのうち、実行してTomcatを実行した後にそれを見ることができます
ここでは、404エラーの出現を見ることができます。これは間違っているが、右側に出てますが。
プロジェクトを設定し、検索を高めましょう
小切手で行う前に、我々は2つのパッケージを作成する必要があります。
私たちは、物事を一つずつ埋めてみましょう。
サービス
それは、データ処理方向、およびプロセスを含む論理サービス層です。
第一の方法は、ここで理解しやすい記事がデータベースに追加されていることです。
第二の方法は、ページングのためにデータベースの意味を確認することで、
なぜそれを行いますか?簡単に言えば、我々はそれを行うにはあまりにも多くのデータを表示することができない場合。IDは、逆の順序で配置されています。
package cn.baldorange.anonymous.service;
import cn.baldorange.anonymous.entity.Wall;
import cn.baldorange.anonymous.repository.WallRepo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service
public class WallService {
@Autowired
WallRepo wallRepo;
/**
* 增加吐槽
* @param title
* @param content
* @return
*/
public Boolean saveNewWall(String title,String content){
try {
String summary = "";
if (content.length() > 100)
summary = content.substring(0, 99);
else summary = content;
Wall wall = new Wall(title, content, new Date(), summary, "0");
wallRepo.save(wall);
return true;
}catch (Exception e){
return false;
}
}
/**
* 获得匿名墙的所有文章
* @return
*/
public Page<Wall> findAllWalls(Integer page,Integer size){
if(page == null) page = 0;
if(size == null) size =10;
PageRequest pageable = PageRequest.of(page, size, Sort.Direction.DESC, "id");
return wallRepo.findAll(pageable);
}
}
コントローラ
コントローラ層は比較的単純であるため、
しかし、注意を払うように、サーブレットの学生から、@PutMapping
実際には、現在一般的に使用されていないだけで、HTTP GETリクエストとポストも削除置いて、私たちは前に見たことがない、これはあなたが思うかもしれもたらす、規定は、人工です人々は変更することができます。
package cn.baldorange.anonymous.controller;
import cn.baldorange.anonymous.entity.Wall;
import cn.baldorange.anonymous.service.WallService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/walls")
public class Controller {
@Autowired
WallService wallService;
@PutMapping("/saveNewWall")
public Boolean saveNewWall(@RequestParam String title,@RequestParam String content){
return wallService.saveNewWall(title,content);
}
@GetMapping("/findAllWalls")
public Page<Wall> findAllWalls(Integer page, Integer size){
return wallService.findAllWalls(page,size);
}
}
アクセス権を設定した後、私たちはここから:
http://127.0.0.1:8080/walls/findAllWalls
これは、我々はJSONデータを見てきたものです
混乱が、しかし、我々は簡単に私達のデータベース内のコンテンツがあることを見つけることができます。他のものがあります。
ここでは、インタフェースファイルを設定する必要があります。
濶歩
私は、フロントエンドまたはバックエンドの開発の両方が、多かれ少なかれインターフェースのマニュアルを参照して拷問されていると信じています。フロントエンド、バックエンド・インターフェースは、多くの場合、文書が実際の状況と矛盾していると文句を言います。私は書くことやメンテナンスは多くのエネルギー、多くの場合、手遅れ更新の費用がかかります、バックエンドインターフェイスのドキュメントを感じます。実際には、両方のフロントエンド、バックエンドの呼び出しは、バックエンドまたはバックエンドのコールを、優れたインタフェースのマニュアルを持っていることを期待しています。しかし、プログラマのためのインタフェースのドキュメントは、単にコメントとして、多くの場合、他の誰かによって書かれたコードは、しかし、ノートを書いていない起動するための独自のコードを書くために、最も厄介な、だけでなく、コメントを書き込むと文句を言います。だからだけで、時間をかけて、十分ではありません規制するために、反復バージョンを皆を強制することにより、インタフェースのドキュメントでは、コードに追いつくために、多くの場合、非常に簡単です。
最初に導入闊歩の達人
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
:次のようにその後、我々は最終的なパッケージのディレクトリを作成
swaggerConfig設定ファイルを次のように:
package cn.baldorange.anonymous.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class swaggerConfig {
@Bean
Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.apiInfo(new ApiInfoBuilder().description("项目").build());
}
}
OK今、我々はプロジェクトを再起動します
と訪問ここで、
[OK]を、私たちは今、テスト闊歩インタフェース、フライドチキンスティックを使用することができます。
ページング
データベースのページには、クエリが駒の指定された数ではなく、完全なデータをチェックアウト1回のデータの指定された数であることを除いて、データベースにクエリを書かれています。
サイズ= 2は、以下を返す場合
サイズ= 2、ページ= 2は、以下を返す場合
、ページサイズまたは範囲外で、以下を返す場合
ここでは、次のように後のフィールド説明]タブ:
{
"content": [{}], // 数据列表
"last": true, // 是否最后一页
"totalPages": 1, // 总页数
"totalElements": 1, // 数据总数
"sort": null, // 排序
"first": true, // 是否首页
"numberOfElements": 1, // 本页数据条数
"size": 10, // 每页长度
"number": 0 // 当前页序号
}
参照することは困難ではない、JPAのページングメカニズムがあまりにもクールなことはありません、特に便利です。
Gitはプッシュアップ
OK、今日は、完了時に住んでいます。