1

我有一个使用 Java SE 开发的瘦客户端。我的瘦客户端需要连接到 Web 服务器以:

  1. 从数据库请求信息。
  2. 发送更新、插入和删除请求。

瘦客户端永远不会直接连接到数据库。在互联网上阅读和讨论后,我得到了以下突出显示的技术:

  1. 安装数据库服务器(MySQL)并创建我的数据库。
  2. 安装 Web 服务器 (Tomcat)。
  3. 将 SQL 查询和逻辑移动到 Web 服务器。
  4. Web 服务器将具有执行 SQL 语句的 Servlet。
  5. 我的瘦客户端将从网络服务器请求结果,网络服务器将从 MySQL 数据库中获取数据,并使用 JSON 格式将结果集返回给我的瘦客户端。
  6. 瘦客户端将从 JSON 解码格式。
  7. 在我的瘦客户端中处理数据,然后将任何更新发送回网络服务器,这对于更新我的数据库是合理的。

我需要的:

  • 这是更好的方法,还是我们可以使用另一个想法。
  • 我是否需要使用任何其他技术来实现这一点。
  • 我可以在哪里获得一些工作示例。
  • 我想向其他人发布一个完整的工作文档,以便通过简单的步骤从中受益,而无需在互联网上搜索数天。
  • 我希望你们所有人都与我们分享。

使用的技术:

  • Tomcat 服务器。
  • MySQL 服务器。
  • 用于瘦客户端的 Java SE。
  • 用于逻辑和数据库操作的 Servlet。
4

1 回答 1

1

我在工作中一直在做类似的事情。这是我们正在做的处理它。

我们有一个 Web 客户端,类似于您的瘦客户端,它需要来自后端数据库的信息。它通过访问 RESTful Web 服务来实现这一点,该服务将进行数据库调用并将信息以 JSON 包的形式返回给客户端。

使用的工具:

所有这些工具都可以很好地协同工作以开发 Web 服务。Roo 允许快速开发和简单的方法将项目的所有元素联系在一起。它不仅可以与 SqlServer、hibernate 和 Tomcat 一起使用,而且不需要 IDE(尽管 Spring Tool Suite 具有内置的 GUI shell),但它依赖于 Maven。我非常喜欢它。它使用 AspectJ 来实现它的大部分魔力,但是一旦你摆脱了 AspectJ 的神秘,它就会变得非常直观。

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

希望这可以帮助!

编辑:这是 Roo 与 hibernate 将创建的存储库

域实体:

@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 {
}

一旦你有了这些,你就可以创建一个能够像这样执行 HTTP 请求的 Controller 类:

@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));
    }
}

putExample()通过向“http://{host}/example/somename”发送一个 Htpp PUT 请求来调用该方法。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) 工具包。它可用于原型应用程序。您将需要进行一些编程,但会更少。

让我知道这是否有助于澄清事情!

于 2013-10-29T16:13:13.223 回答