WebService 理论详解、JWS(Java Web Service) 快速入门

article/2025/9/22 21:35:11

目录

WebService (web服务)概述

WebService 平台技术

WebService 工作原理

WebService 开发流程

常见 Web Service 框架

JWS(Java Web Service) 概述

JWS(Java Web Service) 快速入门


WebService (web服务)概述

1、WebService(Web服务)是一种跨语言、跨平台的远程调用技术。

A、跨语言:服务器与客户端可以使用不同的语言开发,客户端都能调用服务器开放的接口,服务器只需要写一遍,任意语言的客户端都能进行调用。

B、跨平台:服务端程序和客户端程序可以运行在不同的操作系统上。

C、远程调用:指计算机 A(客户端) 上的程序可以调用计算机 B(服务器) 上的对象的方法。如火车站进出站需要刷身份证,参加大型展会、演唱会时也可以刷身份证,显然火车站以及展览会、演唱会这些刷身份证的系统自己是不可能有全国人民的身份证数据的,它们都在公安局的数据库里,所以就可以理解成是公安身份证系统使用 webService 向外提供了接口,各地刷身份证的系统作为客户端调用而已。

2、WebService 是可互操作的分布式应用程序的一个平台、一个标准,它定义了应用程序如何在 Web 上实现互操作性,可以用任何语言在任何平台上写 Web Service 服务端,然后可以通过 Web service 标准对这些服务进行操作。 

3、如果系统需要为任意的第三方客户提供服务,那么服务器系统就可以使用 webService 技术,这样方便数据交互。需要注意的是如果服务端接口方为webservice,则客户端也必须使用 webservice 。

web Service 应用场景?

1. 同一家公司的新旧应用之间,子系统之间,如校内的招生系统、就业系统、缴费系统、考试系统等

2. 不同公司的业务应用之间,如天猫网与中通物流系统交互

3. 一些提供数据的内容聚合服务应用,如天气预报、股票行情、机票、邮政编码等

如何发布一个 webService?

1、定义 SEI(Service Endpoint Interface)服务终端接口,即 webService 提供的服务接口

2、定义 SIB(Service Implemention Bean)服务实现类,即 webService 提供的服务接口的实现类

3、发布 webService 服务  Endpoint publish(String address, Object implementor)

如何请求一个 webService?

1、根据服务的提供的 wsdl 文档生成客户端代码,可以使用 Java Jdk自带的 wsimport.exe工具,或者 使用第三方如 Apache 的 CXF wsdl2java 工具既能生成服务端代码,也能生成客户端代码。

2、根据生成的客户端代码调用 webService

一次 web service 请求的本质(流程)?

1、客户端向服务器端发送了一个 soap消息 (http 请求+ xml 片断)

2、服务器端处理完请求后, 向客户端返回一个 soap 消息(结果)

3、整个请求与应答都是围绕着 wsdl 文件,每次请求都是靠解析 wsdl 文件来确定调用哪个具体的方法,参数以及返回值等,所以如果调用的过程中,如果 wsdl 文件无法访问,或者文件错误,都会导致调用失败。

WebService 平台技术

XML+XSD ,SOAP,WSDL 构成 WebService 平台的三大技术。

1)XML+XSD

WebService 采用 HTTP 协议传输数据,采用 XML 格式封装数据(XML中说明调用远程服务中哪个对象的方法,传递的参数、返回结果等)。XML 的主要优点在于它与平台无关。

XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD),作用是定义 XML 文档的合法构建模块,类似 DTD,最重要的能力之一就是对数据类型的支持。WebService 平台就是用 XSD 来作为其数据类型系统的,当用某种语言(如VB、.NET、C#、Java等)来构造一个 Web service 时,为了符合 WebService 标准,所有使用的数据类型都必须被转换为XSD类型。

2)SOAP

SOAP(Simple Object Access Protocol)是基于 XML 的简单对象访问协议,可使应用程序在 HTTP 之上进行信息交换。

SOAP 指简易对象访问协议
SOAP 是一种通信协议
SOAP 用于应用程序之间的通信
SOAP 是一种用于发送消息的格式
SOAP 被设计用来通过因特网进行通信
SOAP 独立于平台
SOAP 独立于语言
SOAP 基于 XML
SOAP 很简单并可扩展
SOAP 允许您绕过防火墙
SOAP 将被作为 W3C 标准来发展

WebService 通过 HTTP 协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP 消息头,以说明 HTTP 消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC 方法来调用 Web Service 。

更多 SOAP 可以参考:http://www.w3school.com.cn/soap/index.asp

3)WSDL

WSDL(Web Services Description Language) 是基于 XML web服务描述语言,用于描述 Web Service 及其函数、参数和返回值等,这样客户端才能方便调用。一些开发工具既能根据 Web service 生成 WSDL 文档,又能导入 WSDL 文档,生成调用相应 WebService 的代理类代码。

WSDL 文件保存在Web服务器上,通过一个 url 地址即可访问。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址,WebService 服务提供商通常通过两种方式来暴露它的 WSDL 文件地址:1、注册到UDDI服务器,以便被人查找;2、直接告诉给客户端调用者。

WebService 工作原理

1、客户端 API 通过服务器的 wsdl 文件的 url 地址,创建出底层的代理类,客户端调用这些代理,就可以访问到 webservice 服务。代理类把客户端的方法调用变成 soap 格式的请求数据再通过 HTTP 协议发出去,并把接收到的 soap 数据变成返回值返回。

2、对服务端而言,各类 WebService 框架的本质就是一个大大的 Servlet,当远程客户端给它通过 http 协议发送过来 soap 格式的请求数据时,它分析这个数据,就知道要调用哪个 java 类的哪个方法,于是去查找或创建这个对象,并调用其方法,再把方法返回的结果包装成 soap 格式的数据,通过 http 响应消息回给客户端。

WebService 开发流程

WebService 开发可以分为服务器端开发和客户端开发两个方面。

1)服务端开发

把公司内部系统的业务方法发布成 WebService 服务,供远程合作单位和个人调用。

借助一些 WebService 框架可以很轻松地把自己的业务对象发布成 WebService 服务,Java 语言常用的第三方 WebService 框架有:axis,xfire,cxf 等。

当然还以 Java 自己的 JWS 。JWS 是 Java 语言对 WebService 服务的一种实现,用来开发和发布服务,不需要任何第三方库,为 Java 开发者提供便捷发布和调用 WebService 服务的途径。

2)客户端开发 

调用别人发布的 WebService 服务,例如调用天气预报 WebService 服务、调用门票服务、地图服务等。

因为是远程调用服务端的对象方法,所以需要在客户端也生成服务器提供的服务类,这通常有如下几种方式:

1、使用第三方如 Apache 的 CXF wsdl2java 工具既能生成服务端代码,也能生成客户端代码;

2、直接使用服务提供商的提供的客户端编程 API 类;

3、Java JDK 在 bin 目录下提供了一个 wsimport.exe 程序,用于生成 WebService 客户端代码,然后调用 WebService;

常见 Web Service 框架

1)JWS

JWS 是 Java 语言对 WebService 服务的一种实现,用来开发和发布服务,为 Java 开发者提供便捷发布和调用WebService服务的功能。Java 1.6 开始推出 JWS,在 javax.jws 包下。

在线 JDK 文档:https://docs.oracle.com/javase/6/docs/api/

2)Axis2

Axis2 是 Apache 中一个重量级 WebService 框架,它是一个 Web Services / SOAP / WSDL 的引擎,是 WebService 框架的集大成者,不但能制作和发布 WebService,而且可以生成 Java 和其它语言版本的 WebService 客户端和服务端代码。

它的优势不可避免的导致了Axis2 的复杂性,所依赖的包数量多,体积大,打包部署发布也比较麻烦,不能很好的与现有应用整合为一体。但是如果是要开发 Java 以外的语言客户端,Axis2 提供的丰富工具将是不二的选择。

官网地址:http://axis.apache.org/

Axis2 Java 版本官网地址:http://axis.apache.org/axis2/java/core/

3)XFire

XFire 是一个高性能的 WebService 框架,在 Java6 之前,它的知名度甚至超过了Apache 的 Axis2,XFire 的优点是开发方便,与现有的 Web 整合很好,可以融为一体,并且开发也很方便。

XFire 对 Java 之外的语言,没有提供相关的代码工具,XFire 后来被 Apache 收购了,在此基础上开发出了更强大的 CXF。

官网地址:https://xfireclient.en.softonic.com/

4)CXF

1、CXF(Celtix + XFire) 是 Apache 旗下重磅的 SOA (Service Oriented Architecture) 面向服务的框架,它实现了 ESB(企业服务总线),能很好的和 Spring 进行集成。

2、CXF 由 Celtix 和 XFire 两个框架合并而来,就像目前的 Struts2 来自 WebWork 一样。可以看出 XFire 的命运会和 WebWork 的命运一样,最终会淡出人们的视线。

3、CXF 不但是一个优秀的 Web Services / SOAP / WSDL 引擎,也是一个不错的 ESB 总线,为 SOA 的实施提供了一种选择方案。
4、虽然 Axis2 出现的时间较早,但 CXF 的追赶速度快。

5、CXF 官网:http://cxf.apache.org/

总结:
1、如果应用程序需要多语言的支持,Axis2 应当是首选了; 
2、如果应用程序是遵循 Spring 哲学路线的话,Apache CXF 是一种更好的选择,特别对嵌入式的 Web Services 应用; 
3、如果应用程序没有新的特性需要,项目不大的话,可以任意采用 Axis1,XFire,或者 Java 自带的  Jws。

JWS(Java Web Service) 概述

1、Java Web Service 是 Java 语言对 WebService 服务的一种实现,用来开发和发布服务,为 Java 开发者提供便捷发布和调用WebService服务的功能。无需借助任何第三方库。

2、Java 1.6 开始推出 JWS,在 javax.jws 包下,在线 JDK 文档:https://docs.oracle.com/javase/6/docs/api/。

3、开发过程十分简单:

1、服务端创建接口

2、服务端创建接口具体实现

3、服务端开启服务

4、客户端调用

4、编码也十分简单,因为整个 javax.jws 包一共也没多少 API。

5、因为 webservice 以 xml 格式进行传输数据,同时也会涉及一些 javax.xml 包下的 API。

JWS(Java Web Service) 快速入门

1、创建一个服务器项目(Java SE)、同时创建一个客户端项目(Java SE),服务端创建一个接口和其实现类,其中提供数据相加与数据相乘的两个方法,然后对外提供这个数据计算的服务,客户端通过 webService 技术可以直接调用服务端系统中的计算方法。

2、无论是 Java SE 应用还是 Java Web 应用,对于使用 jws 的 API 都是一样的,这里为了简单以创建 Java SE 项目进行演示。

ws 服务端

新建一个 Java SE 项目如下,名称 web_server,其中的代码结构如下。

1、第一步创建 CalculatorService 接口,这是需要对外提供服务的接口,客户端需要知道其中的内容。

2、第二步创建实现类 CalculatorServiceImpl,这是接口的具体实现,客户端是无法知道其中的内容的。

3、第三步创建 Web_Service 类,用于启动 webService 服务。

具体的 API 已经在注释解释的很详细了。

1、CalculatorService 接口内容如下:

import javax.jws.*;
/*** Created by Administrator on 2019/1/25 0025.* 计算器接口* SEI(Service Endpoint Interface):服务终端接口,即webService提供的服务接口* SIB(Service Implemention Bean):服务实现类,即webService提供的服务接口的实现类** @javax.jws.WebService : 将 Java 类标记为实现 Web Service,或者将 Java 接口标记为定义 Web Service 接口* 不过是服务端还是客户端,接口上都必须写上此注解*/
@WebService
public interface CalculatorService {//加法//@WebService 中的方法上可以加上 @WebMethod 注解,也可以不加//@WebMethod 注解写或不写,服务端都会将 @WebSerivce 中的所有方法提供给客户端掉//写上的好处就是看起来更加直观而已,如同 @Override 重写注解意义,删除也无影响public float addition(float a, float b);//乘法public float multiplication(float a, float b);
}

2、CalculatorServiceImpl 实现类内容如下:

import javax.jws.WebService;
import java.util.logging.Logger;
/*** Created by Administrator on 2019/1/25 0025.* SEI(Service Endpoint Interface):服务终端接口,即webService提供的服务接口* SIB(Service Implemention Bean):服务实现类,即webService提供的服务接口的实现类** @javax.jws.WebService : 将 Java 类标记为实现 Web Service,或者将 Java 接口标记为定义 Web Service 接口* endpointInterface:终端接口,定义服务抽象 Web Service 协定的服务端点接口的完整名称,通常设置为服务实现类的全路径* 接口要写,实现类也必须写 @WebService* @WebService 接口一共提供了以下属性,而且都有默认值,它们将来都会出现在 wsdl 的 xml 文件中* String name() default "";* String targetNamespace() default "";* String serviceName() default "";* String portName() default "";* String wsdlLocation() default "";* String endpointInterface() default "";*/
@WebService(endpointInterface = "com.lct.web_service.CalculatorService")
public class CalculatorServiceImpl implements CalculatorService {//日志记录器public static final Logger logger = Logger.getGlobal();@Overridepublic float addition(float a, float b) {logger.info("加法计算:" + a + " + " + b + " = " + (a + b));return a + b;}@Overridepublic float multiplication(float a, float b) {logger.info("乘法计算:" + a + " x " + b + " = " + (a * b));return a * b;}
}

3、Web_Service 启动 webService 服务类内容如下:

import javax.xml.ws.Endpoint;
/*** Created by Administrator on 2019/1/25 0025.* webServer 启动类*/
public class Web_Service {public static void main(String[] args) {/**webService服务器提供给客户端访问的地址* 192.168.1.20 为服务器 ip、3333为指定的端口号、web_server 为应用名称、calculator为标识* 这个地址符合 http 地址即可,为了看起来更像是 web访问,所以才写了应用名,其实 http://192.168.1.20:3333/xxx 都是可以的*/String wsUrl = "http://192.168.1.20:3333/web_server/calculator";/*** javax.xml.ws.Endpoint 表示一个 web service 终端,这是一个抽象类,其中提供了静态方法可以直接调用* Endpoint publish(String address, Object implementor)* address:传输协议的 url 地址;* implementor(实现者):web service 终端的实现类,因为一个 ws 接口可能会有多个实现类*/Endpoint.publish(wsUrl, new CalculatorServiceImpl());}
}

浏览器访问

1、webService 服务启动成功之后,根据提供 wsdl 地址,直接通过浏览器即可访问,看到服务端提供的接口(服务),客户端只需要解析这个 xml 文件即可进行服务调用。

2、注意地址最后的 wsdl 参数必须加上。

此 xml 文件全部内容如下:https://gitee.com/wangmx1993/my-document/blob/master/docs/WebService%20%20WSDL%20%E6%96%87%E4%BB%B6%E7%BB%93%E6%9E%84.xml

客户端

1、调用别人发布的 WebService 服务,例如调用天气预报 WebService 服务、调用门票服务、地图服务等。因为是远程调用服务端的对象方法,所以需要在客户端也生成与服务器一致的服务接口,这通常有如下几种方式:

1、使用第三方如 Apache 的 CXF wsdl2java 工具既能生成服务端代码,也能生成客户端代码;

2、Java JDK 在 bin 目录下提供了一个 wsimport.exe 工具,用于根据 wsdl 文件生成 WebService 客户端代码,然后调用 WebService;

3、直接使用服务提供商的提供的客户端编程 API 接口;

2、简单的说就是客户端调用 webService 服务器的接口,客户端自己也要有与服务器一致的接口,但是客户端不需要服务端接口的实现类,显然人家服务提供商自然也不会连实现类都提供出来,再者说,如果连接口和实现都提供了,则远程调用就没有意义了,就是再调用自己了

3、新建客户端项目(Java SE )如下,其中 CalculatorService 是与服务端一样的接口,Web_service 类用于调用服务器上的方法。

1、CalculatorService 接口内容如下,如果服务端、客户端都是 Java 开发,则完全可以联系服务器开发人员直接把这个接口的代码发过来即可。所以下面的代码与服务端完全是一样的。

import javax.jws.WebService;
/*** Created by Administrator on 2019/1/25 0025.* 计算器接口* SEI(Service Endpoint Interface):服务终端接口,即webService提供的服务接口* SIB(Service Implemention Bean):服务实现类,即webService提供的服务接口的实现类** @javax.jws.WebService : 将 Java 类标记为实现 Web Service,或者将 Java 接口标记为定义 Web Service 接口* 无论作为服务端还是客户端都必须写 @WebService 注解*/
@WebService
public interface CalculatorService {//加法public float addition(float a, float b);//乘法public float multiplication(float a, float b);
}

2、Web_service 类用于调用 webService 服务,内容如下:

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.logging.Logger;
/*** Created by Administrator on 2019/1/25 0025.*/
public class Web_service {//日志记录器public static final Logger logger = Logger.getGlobal();public static void main(String[] args) {try {/** url:webservice 服务端提供的服务地址,结尾必须加 "?wsdl"*/URL url = new URL("http://192.168.1.20:3333/web_server/calculator?wsdl");/** QName 表示 XML 规范中定义的限定名称,QName 的值包含名称空间 URI、本地部分和前缀。* QName(final String namespaceURI, final String localPart):指定名称空间 URI 和本地部分的 QName 构造方法。* 如下所示的两个数据都可以浏览器访问服务端时返回 xml 中第一行找到,如:* <definitions xmlns:wsu=xxxxxxx targetNamespace="http://web_service.lct.com/" name="CalculatorServiceImplService">*/QName qName = new QName("http://web_service.lct.com/", "CalculatorServiceImplService");/*** Service 对象提供 Web 服务的客户端视图* Service 作为以下内容的工厂:1、目标服务端点的代理,2、用于远程操作的动态面向消息调用的 javax.xml.ws.Dispatch 实例。* create(java.net.URL wsdlDocumentLocation,QName serviceName):创建 Service 实例。* wsdlDocumentLocation : 服务 WSDL 文档位置的 URL* serviceName : 服务的 QName*/Service service = Service.create(url, qName);/*** 使用 getPorts 方法可以对服务上可用的端口/接口进行枚举* getPort(Class<T> serviceEndpointInterface):获取支持指定服务端点接口的对象实例* serviceEndpointInterface:指定返回的代理所支持的服务端点接口*/CalculatorService calculatorService = service.getPort(CalculatorService.class);float added = calculatorService.addition(100, 80);float multied = calculatorService.multiplication(2.5F, 100);logger.info("added:" + added);logger.info("multied:" + multied);} catch (MalformedURLException e) {e.printStackTrace();}}
}

调用测试

1、先运行服务器开启 webService 服务,然后运行客户端看是否能调用服务端上的实现类进行计算,如果可以则说明 webService 服务提供成功。

由上可见完全成功。


http://chatgpt.dhexx.cn/article/onvRMBAx.shtml

相关文章

一文理解 JWT、JWS、JWE、JWA、JWK、JOSE

原文收录 GitBook——统一接口认证解决方案 JsonWebToken 关于JsonWebToken的专业名词解释&#xff1a; unsecured JWT&#xff1a;默认头部{“alg”: “none”}的jwt令牌JWS(SignedJWT)&#xff1a;已签名的jwt,包含标准jwt结构&#xff1a;header、payload、signatureJWE…

JWS入门

JWS简介 JWS主要用来通过网络部署你的应用程序&#xff0c;它具有安全、稳定、易维护、易使用的特点。用户访问用JWS部署应用程序的站点&#xff0c;下载发布的应用程序&#xff0c;既可以在 线运行&#xff0c;也可以通过JWS的客户端离线运行已下载的应用程序。对同一个应用程…

【C语言】判断一个数是否是完全平方数(两种解法)

题目&#xff1a; 判断一个数是否是完全平方数。 以下数字为完全平方数&#xff1a;42*2,93*3,14412*12,16913*13 有两个方法&#xff0c;可以求完全平方数&#xff1a; 方法一&#xff1a;输入一个数&#xff0c;遍历所有比这个数小的数&#xff0c;只要有其中一个数满足条件…

C语言 输入10个数,将其中最小的数与第一个数对换,将最大的数与最后一个数对换

#include <stdio.h> void input(int *number){ //定义输入10个数的函数int i;printf("请输入10个整数:\n");for(i0;i<10;i)scanf("%d",&number[i]); } void max_min_value(int *number){ //交换函数int *max,*min,*p,temp;maxminnumber; //开…

C语言判断一个数是奇数还是偶数

#include <stdio.h> void main() { int n; scanf("%d",&n); //运用scanf函数可以输入想要的数字 //也可以采用int n&#xff08;取一个数&#xff09;进行运算 if(n%20)//if函数注意&#xff0c;%是取余 printf("%d是一个偶…

python判断三位数水仙花数_Python如何判断一个数字是否为水仙花数

水仙花数是一个三位数,并且每一位数字的三次方的和还等于这个数字。 下面我们来看一下如何用Python判断这个数字是否为水仙花数 工具/原料 电脑 Python开发工具 方法/步骤 1 创建一个变量s,用input代码和用户交互,代码如下: s = input("请输入一个数字:"…

c语言判断一个数是否是素数

1&#xff1a;什么是素数 素数就是一个数只能被1和他本身整除的数我们称之为素数。例如13&#xff0c;17&#xff0c;19一类的数。 2&#xff1a;求出一个数是否是素数的思路 素数是只能被1和本身整除的数&#xff0c;那么如果设这个数为n&#xff0c;那么它就不能被2~n-1整…

python用函数判断一个数是否为素数,python分享是否为素数 python输入并判断一个数是否为素数...

python输入并判断一个数是否为素数 x=int(input("x\n")); i=2; for i in range(2,x+1): if(x%i==0): break;if(i==x and i。 用python 判断一个数是否是素数 小编觉得小编的程序是对的但为什么没办法运行,那个弹出来的窗口是啥意思小编曾千万次的请分享:不要逼小编…

python中判断一个数是否为素数_怎么用python判断一个数是否是素数

先来看下什么是质数&#xff1a; 质数(Prime number)&#xff0c;又称素数&#xff0c;指在大于1的自然数中&#xff0c;除了1和该数自身外&#xff0c;无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)。 简单来说就是&#xff0c;只能除以1和自身的数(需要大…

取到一个数的各个位的方法

计算方式如下&#xff1a; 个位&#xff1a;用这个数除以1对10取余&#xff0c;num / 1 % 10; 因为1除以&#xff08;除了0以外&#xff09;任何数都等于这个数的倒数&#xff0c;所以计算个位可以直接对10取余&#xff08;num%10&#xff09; 来获得。 十位&#xff1a;除以…

得到一个数每一位数字的几种方法

1.&#xff08;最简单暴力&#xff09;直接将数字转换为字符串&#xff0c;然后转换为字符数组输出。 int n12345;char[] charsString.valueOf(n).toCharArray();for(int j0;j<chars.length;j){System.out.print(chars[j]" ");}2.整除法。 int n12345;List<Int…

Html5超链接重置为link状态,去除a标签下划线 html超链接更改颜色和去掉下划线

去掉a标签下划线&#xff1a; 对超链接下划线设置 使用代码"text-decoration" 语法&#xff1a; text-decoration : none || underline || blink || overline || line-through text-decoration参数&#xff1a; none : 无装饰 blink : 闪烁 underline : 下划线 line-…

html5 a标签去下划线,css中如何去掉a标签的下划线?

我们在HTML网页制作过程中&#xff0c;相信大家对css文本超链接这个概念并不陌生。我们都知道想要给某段文本或者指定元素添加一个锚点也就是超链接需要用到HTML中的a标签。 那么有的新手可能就会发现&#xff0c;在使用a标签时文本超链接会自动出现下划线&#xff01;从视觉美…

css中怎么消除a的下划线,如何使用css去掉a标签的下划线?(代码详解)

写html超链接的时候&#xff0c;超链接总是自带下划线&#xff0c;如果不需要下划线&#xff0c;我们需要将其去掉&#xff0c;下面我们就来说一下怎么去掉下划线。 我们在使用超链接的时候&#xff0c;下划线总是伴随着出现&#xff0c;从视觉上来说有着下划线的a标签总是感觉…

MySQL数据库常用命令

活动地址&#xff1a;CSDN21天学习挑战赛 1.对数据库常用命令 1.连接数据库 mysql -u用户名 -p密码 2.显示已有数据库 show databases; 3.创建数据库 create database sqlname; 4.选择数据库 use database sqlname; 5.显示数据库中的表&#xff08;先选择数据库&#xff09; sh…

mysql命令更新数据库_命令操作MySQL数据库

一、连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1、 连接到本机上的MYSQL。 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码. 如…

微信小程序小说阅读器/在线故事阅读丨可以android studio运行

《微信小程序小说阅读器后台管理系统|前后分离VUE》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 本系统包含微信小程序前台和Java做的后台管理系统&#xff0c;该后台采用前后台前后分离的形式使用JavaVUE 微信小程序——前台涉及技术&#xff1a…

微信读书护眼版

微信读书是我目前发现的比较好用的读书平台之一&#xff0c;电子书资源丰富&#xff0c;界面风格还挺舒服&#xff0c;支持app和网页版&#xff0c;唯一难受的就是网页版的背景显示方案太少了&#xff0c;只能切换浅色和深色两种&#xff0c;上班想摸鱼看会书&#xff0c;直刺得…

微信读书产品体验报告

微信读书【5.0.5】产品体验报告 本文预览 微信读书凭借着简洁的风格、丰富的电子版权以及良好的推书、读书的阅读氛围获得了一大批粉丝&#xff0c;在现今短视频类应用占据用户大量时间的今天&#xff0c;为何微信读书像一股清流抓住了用户注意力&#xff0c;它又是怎么去实现…

微信小程序图书阅读项目 (:

获取项目源代码&#xff1a;扫码下方小程序获取或者加作者微信获取 1.简介 小程序图书阅读项目是使用uni-app编写的小程序图书阅读项目&#xff0c;项目前后端分离&#xff0c;小程序使用uni-app&#xff0c;后台管理使用vue2elementUI,后端使用SpringBootSpringCloudAlibaba编…