簡體   English   中英

使用Servlet + JSON + MySQL配置Web服務和瘦客戶端

[英]Configuring Web Service & thin client using Servlet+JSON+MySQL

我有一個使用Java SE開發的瘦客戶端。 我的瘦客戶端需要連接到Web服務器以:

  1. 從數據庫請求信息。
  2. 發送更新,插入和刪除請求。

瘦客戶端永遠不會直接連接到數據庫。 在互聯網上閱讀和討論之后,我獲得了以下突出技術:

  1. 安裝數據庫服務器(MySQL)和創建數據庫。
  2. 安裝Web服務器(Tomcat)。
  3. 將SQL查詢和邏輯移至Web服務器。
  4. Web服務器將具有執行SQL語句的Servlet。
  5. 我的瘦客戶端將從Web服務器請求結果,網絡服務器將從MySQL數據庫獲取數據,並使用JSON格式將結果集返回給我的瘦客戶端。
  6. 瘦客戶端將從JSON解碼格式。
  7. 然后在瘦客戶機中使用數據,然后將所有有關更新數據庫的合理更新發送回Web服務器。

我需要的:

  • 這是執行此操作的更好方法,還是我們可以使用另一個想法。
  • 我是否需要使用任何其他技術來實現這一目標。
  • 在這里我可以得到一些可行的例子。
  • 我想向其他人發布功能完善的文檔,以便通過簡單的步驟從中受益,而無需在互聯網上搜索幾天。
  • 希望大家與我們分享。

二手技術:

  • Tomcat服務器。
  • MySQL服務器。
  • 瘦客戶端的Java SE。
  • Servlet用於邏輯和數據庫操作。

我一直在從事類似的工作。 這是我們正在處理的事情。

我們有一個Web客戶端,與您的瘦客戶端類似,它需要后端數據庫中的信息。 它通過訪問RESTful Web服務來執行此操作,該服務將進行數據庫調用並將信息以JSON包的形式返回給客戶端。

使用的工具:

所有這些工具可以很好地協同工作以開發Web服務。 Roo允許快速開發和簡便的方法來將項目的所有元素聯系在一起。 而且它可以與SqlServer,hibernate和Tomcat一起使用,並且不需要IDE(Alter Spring Tool Suite具有內置的GUI外殼),但是它依賴於Maven。 我絕對喜歡 它將AspectJ的大部分功能都使用了,但是一旦您超越了AspectJ的奧秘,它就會變得非常直觀。

這是Roo的一個很好的教程: http : //docs.spring.io/spring-roo/reference/html/beginning.html

希望這可以幫助!

編輯:這是Roo與休眠將創建一個存儲庫

域實體:

@RooJavaBean
@RooToString
@RooJpaEntity(table = "Example")
@RooJson
public class Example {

    private String name = "default";
    public Example(String name){
        this.name = name;
    }
}

庫:

package com.example.repositories;

import org.springframework.roo.addon.layers.repository.jpa.RooJpaRepository;

@RooJpaRepository(domainType = Example.class)
public interface ExampleRepository {
}

獲得這些內容后,您將創建一個Controller類,該類能夠執行HTTP請求,如下所示:

@RooWebJson(jsonObject = Example.class)
@Controller
@RequestMapping("/example/")
public class ExampleController {
    @Resource
    ExampleRepository exampleRepo;

    @RequestMapping(method = RequestMethod.PUT, value ="/{name}")
    public void putExample(@PathVariable("name") String name) {
        exampleRepo.save(new Example(name));
    }
}

通過將Htpp PUT請求發送到“ http:// {host} / example / somename”來調用putExample()方法。 RequestMapping還有許多其他選項,例如請求中包含的特定標頭。 來自請求的JSON / xml也可以傳遞給服務以供該方法使用。

可以這樣添加新查詢:

@Query("select * from Example e where e.name = ?1)
List<Example> getAllByName(String name);

將此方法添加到存儲庫類將為您提供一個新的Sql查詢。 注意:查詢以選擇語言的JPA編寫。 這是Hibernate的方法。

這里有一些與RESTful服務相關的約定。 例如,Http PUT和POST僅應用於執行Sql UPDATE或INSERT查詢,Http GET應當用於Sql SELECT,Http DELETE則用於Sql DELETE,等等,但這取決於Web服務設計者。

我應該澄清一下,Roo是一個快速應用程序開發(RAD)套件。 它可以用於原型應用程序。 您將需要進行一些編程,但是會更少。

讓我知道這是否有助於澄清問題!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM