gpt4 book ai didi

java - 使用 Servlet+JSON+MySQL 配置 Web 服务和瘦客户端

转载 作者:行者123 更新时间:2023-11-29 00:24:21 24 4
gpt4 key购买 nike

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

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

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

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

我需要什么:

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

使用的技术:

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

最佳答案

我在工作中一直在做类似的事情。以下是我们正在采取的处理措施。

我们有一个 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 {
}

一旦你有了这些,你就可以创建一个 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));
}
}

调用方法 putExample() 是通过向“http://{host}/example/somename”发送 Htpp PUT 请求来完成的。 RequestMapping 有更多选项,例如请求中包含的特定 header 。来自请求的 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) 工具包。它可用于原型(prototype)应用程序。您将需要进行一些编程,但会更少。

如果这有助于澄清事情,请告诉我!

关于java - 使用 Servlet+JSON+MySQL 配置 Web 服务和瘦客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19662582/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com