首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Servlet+JSON+MySQL配置Web &瘦客户机

使用Servlet+JSON+MySQL配置Web &瘦客户机
EN

Stack Overflow用户
提问于 2013-10-29 15:30:32
回答 1查看 1K关注 0票数 1

我有一个使用Java开发的瘦客户机。我的瘦客户端需要连接到Web Server,以便:

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

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

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

我需要的是:

  • 这是更好的方式,还是有另一个想法,我们可以合作。
  • 我是否需要使用其他技术来实现这一目标。
  • 我可以找到一些有用的例子。
  • 我想发布一个充分工作的文件给其他人,从它得到好处,通过简单的步骤,而无需搜索互联网数天。
  • 我希望你们都能分享我们。

使用的技术:

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-29 16:13:13

我在工作中一直在做类似的事情。这就是我们要做的事情。

我们有一个Web客户端,与您的瘦客户机不同,它需要后端数据库中的信息。它通过访问JSON服务来实现这一点,该服务将进行数据库调用并将信息返回给RESTful包中的客户端。

使用的工具:

  • Spring:用于快速成型(http://projects.spring.io/spring-roo/)
  • 弹簧工具套件
  • 春天
  • Maven
  • Tomcat
  • SqlServer
  • Hibernate

所有这些工具都能很好地协同开发web服务。Roo允许快速开发和简单的方法将项目的所有元素结合在一起。它不仅适用于SqlServer、hibernate和Tomcat,而且不需要IDE (有内置的GUI ),但它依赖于Maven。我绝对喜欢。它大部分的魔力都是使用AspectJ的,但是一旦您通过了AspectJ的神秘性,它就变得非常直观。

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

希望这能帮上忙!

编辑:这是Roo与hibernate一起创建的存储库。

域实体:

代码语言:javascript
运行
复制
@RooJavaBean
@RooToString
@RooJpaEntity(table = "Example")
@RooJson
public class Example {

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

储存库:

代码语言:javascript
运行
复制
package com.example.repositories;

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

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

有了这些之后,就创建了一个Controller类,它能够执行HTTP请求,如下所示:

代码语言:javascript
运行
复制
@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也可以传递给服务,供方法使用。

添加新的查询可以这样做:

代码语言:javascript
运行
复制
@Query("select * from Example e where e.name = ?1)
List<Example> getAllByName(String name);

将此方法添加到存储库类将为您提供一个新的Sql查询。注意:查询是用JPA语言编写的。这是一种冬眠的方式。

这里有一些与RESTful服务相关的约定。例如,Http和POST只用于执行Sql更新或插入查询,Http GET用于Sql SELECT,Http DELETE用于Sql DELETE等,但这取决于web服务设计器。

我应该澄清,Roo是一个快速应用程序开发(RAD)工具包。它可以用于原型应用程序。您将需要做一些编程,但它将减少。

如果这有助于澄清问题,请告诉我!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19662582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档