本文介绍在 Spring Boot 项目中,如何使用 JdbcTemplate 读取 Microsoft SQL Server 中的数据,实现一个 Restful Web Services。
实现一个 Restful Web Services ,请求后输出从 SQL Server 数据库 Products 表获取到的某些数据。例如,
http://localhost:7425/one
输出纯文本:星巴克咖啡http://localhost:7425/getById/2
根据指定 id 输出 JSON : { “id” : 2 , “name” : “蓝山咖啡” }http://localhost:7425/getAll
输出 JSON List:
[{ “id” : 1 , “name” : “星巴克咖啡” },{ “id” : 2 , “name” : “蓝山咖啡” },{ “id” : 3 , “name” : “猫屎咖啡” }]
根据 Restful 风格,采取的是 getById/2
这种的地址方式获取参数,而不是传统的 getById?id=2
问号加参数的方式。在 Spring 中采用 @PathVariable
对参数进行标记。
使用 Spring Tool Suite 创建一个 Spring Starter Project ,添加 HelloHooyes.java,Products.java 文件 ,创建好的目录必要的结构:
本文介绍如何使用 Maven 创建一个Servlet
开发环境简介
$ java -version
java version "14.0.1" 2020-04-14
...
$ mvn --version
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
OS name: "mac os x", version: "10.14.5", arch: "x86_64", family: "mac"
...
我们的目标就是通过Maven将 HelloHooyes.java 编译成字节码 HelloHooyes.class
1、创建一个项目专用的目录
Maven 项目需要一个目录,假设我们创建的根目录名称为 hooyes ,目标的目录结构如下:
我们注意到,里面有两个核心文件,一个是 pom.xml ,另一个是 HelloHooyes.java,值到注意的是目录的结构是严格的,pom.xml 必须在根目录下,HelloHooyes.java 必须在 src/main/java/ 目录下。
Servlet 是Java类,实现了HttpServlet接口,用于服务HTTP请求。 我将仅使用文本工具和命令行(不需要任何IDE)生成一个最简单的Servlet。
先简单介绍一下本文基于的开发环境
$ java -version
java version "14.0.1" 2020-04-14
Java(TM) SE Runtime Environment (build 14.0.1+7)
Java HotSpot(TM) 64-Bit Server VM (build 14.0.1+7, mixed mode, sharing)
$ javac -version
javac 14.0.1
$ catalina version
Using CATALINA_BASE: /usr/local/Cellar/tomcat/9.0.34/libexec
Server version: Apache Tomcat/9.0.34
OS Name: Mac OS X
OS Version: 10.14.5
Architecture: x86_64
JVM Version: 13.0.2+8
......
Tomcat Web 配置
根目录:/usr/local/Cellar/tomcat/9.0.34/libexec/webapps/ROOT 以下简称: {WEB根目录}
端口:8080
以下正式开始,我们的目标就是将 HelloHooyes.java 编译成字节码 HelloHooyes.class ,然后将 HelloHooyes.class 布署到 Tomcat 上运行。通过浏览器Get请求输出 “Hello Hooyes!”
1、创建一个文件 HelloHooyes.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloHooyes extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.getWriter().append("Hello Hooyes!");
}
protected void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.getWriter().append("Welcome to https://hooyes.net/p/first-servlet");
}
}
github上的 HelloHooyes.java