sap系统连接其它系统

本文来自博客园,作者:Lovemywx2,转载请注明原文链接:https://www.cnblogs.com/1187163927ch/p/8669859.html

JAVA连接ORACLE数据库

1,首先需要在Oracle安装完成之后新建一个用户

--新建用户
create user chenh identified by chenh;
--解锁用户
alter user chenh account unlock;
alter user scott account unlock;
--修改密码
alter user chenh identified by chenh;
--授予权限
grant sysdba to chenh;
--授予chenh用户创建session的权限,即登陆权限
grant create session to chenh;
--授予chenh用户使用表空间的权限
grant unlimited session to chenh;
--授予创建表的权限
grant create table to chenh;
--授予删除表的权限
grant drop table to chenh;
--插入表的权限
grant insert table to chenh;
--修改表的权限
grant update table to chenh;
--查看当前数据库实例名
select name from v$database;
--提交事务
commit;

2.用户新建完成之后,可能会出现某个用户对标users没有权限的提示

1   -- 解决用户 XX 对 users表空间没有权限的问题
2  alter user chenh quota unlimited on users; 

3.新建一个测试表以及向其中插入几条数据

--删除表
drop table a;
--新建表
create table a(
col1 varchar2(10),
col2 varchar2(10),
col3 varchar2(10),
col4 varchar2(10)
);
--查询
select * from a;
--插入语句 多执行几次,因为没有主键限制,故此处可以执行多次
insert into a (col1,col2,col3,col4) values ('a1','b','c','d');commit;

4.需要在eclipse中新建一个java项目

打开eclipse(myeclipse)-> File(文件)-> New(新建) ->Project(工程) -> Java Project (Java 工程)

  Project Name: 项目名称 接着一路Next(下一步)或者直接Finish(完成)

5.需提前下载ojdbc6.jar 连接数据库驱动的JAR包

  这里提供下载地址:https://files.cnblogs.com/files/1187163927ch/blog.rar

      解压密码:1187163927

6.在eclipse(myeclipse)新建的项目中将ojdbc6.jar导入,记得build path.

  打开该项目树状图,将下载好的ojdbc6.jar直接拖到该项目中,然后鼠标左键选中该文件,右键Build Path即可。

7.新建一个java类,在其中连接数据库

  7.1连接数据库驱动

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class DBConnection {public static Connection dbConn(String name, String pass) {Connection c = null;try {Class.forName("oracle.jdbc.driver.OracleDriver");// 要是导入驱动没有成功的话都是会出现classnotfoundException.自己看看是不是哪里错了,例如classpath这些设置} catch (ClassNotFoundException e) {e.printStackTrace();}try {c = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:chenh", name, pass);// 连接数据的方法有四种, 这个属于最简单的,一般用网页程序 chenh是你的数据库实例名称,在下载的文件test.sql中可以执行语句查看// "jdbc:oracle:thin:@计算机名称:监听端口:系统实例名", username, password,// 计算机名称,要是自己不知道可以在计算机属性查知.// 监听端口一般默认是1521, 要是改变了就看自己的监听文件listener.ora// 系统实例名一般是默认orcl, 要是不是的话就用 select name from v$database; 看看当前的实例名.在本程序中我更改了实例为chenh// username,password,就是登陆数据库的用户名和密码.} catch (SQLException e) {e.printStackTrace();}return c;}
}

    7.2 查询数据库

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class DB extends DBConnection {private static Connection con = null;private static Statement sql = null;private static ResultSet rs = null;public static void main(String[] args) throws SQLException {String COL1;String COL2;String COL3;String COL4;try {con = dbConn("chenh", "chenh");if (con == null) {System.out.print("连接失败");System.exit(0);}sql = con.createStatement();rs = sql.executeQuery("select * from a");System.out.println("COL1" + "            " + "COL2" + "             "+ "COL3"+ "             "+ "COL4");while (rs.next()) {COL1 = rs.getString(1);COL2 = rs.getString(2);COL3 = rs.getString(3);COL4 = rs.getString(4);System.out.println(COL1 + "         " + COL2 + "         " + COL3+ "         " + COL4);}} catch (Exception e) {e.printStackTrace();} finally {con.close();}}
}

检查不报错之后,执行按钮,选中项目  右键 -> Run As -> Java Application  可看到如下结果:

本文来自博客园,作者:Lovemywx2,转载请注明原文链接:https://www.cnblogs.com/1187163927ch/p/8670409.html

JAVA连接SAP

1.首先需要在SAP事务码SE37中新建一个可以被远程调用的RFC

事务码:SE37

新建一个函数组:输入事务码SE37回车后,来到函数构建器屏幕,到上面一排菜单栏:转到 -> 函数组 -> 创建组

 输入描述信息,方便以后使用,以后功能相似的函数都可以放到该函数组下

 函数组创建完毕后,回到SE37初始界面,创建函数,键入函数名后,点击创建按钮

在属性页签下,输入函数的描述,将远程启用的模块选上

在导入导出参数页签下设置输入输出参数(远程调用模块的注入,输出),要注意参考类型,可选性和传递值

 

在源代码中

FUNCTION zchenh001.
*"----------------------------------------------------------------------
*"*"局部接口:
*"  IMPORTING
*"     VALUE(P1) TYPE  INT4 DEFAULT 0
*"     VALUE(P2) TYPE  INT4 DEFAULT 0
*"     VALUE(OPERATOR) TYPE  CHAR1 DEFAULT '+'
*"  EXPORTING
*"     VALUE(RESULT) TYPE  INT4
*"     VALUE(MSG) TYPE  CHAR255
*"----------------------------------------------------------------------DATA:err_text TYPE string,e TYPE REF TO cx_root.TRY .CASE operator.WHEN '+'.       result = p1 + p2.WHEN '-'.       result = p1 - p2.WHEN '*'.       result = p1 * p2.WHEN '/'.       result = p1 / p2.WHEN OTHERS.CONCATENATE '操作符' operator ',SAP无法识别' into msg.ENDCASE.CATCH cx_root INTO e.err_text = e->get_text( ).msg = err_text.ENDTRY.ENDFUNCTION.

 在SAP中测试如下:

测试一:

测试二:

 

测试三:

 

测试四:

 接下来需要下载连接SAP的驱动sapjco3.jar包,

本处提供下载:sapjco3.jar

  解压密码:1187163927

激活后可以在SAP内部测试 ,至此SAP部分已完成

2在eclipse(myeclipse)新建的项目中将sapjco3.jar导入,记得build path.

  打开该项目树状图,将下载好的sapjco3.jar直接拖到该项目中,然后鼠标左键选中该文件,右键Build Path即可。

 2.1 配置与SAP系统的连接(此处最好在SAP系统中新建一个RFC用户)

package com.cee.conn;import java.io.File;
import java.io.FileOutputStream;
import java.util.Properties;
import java.util.logging.Logger;import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoDestinationManager;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.ext.DestinationDataProvider;/*** 与SAP连接配置** @author jay*/
public class SAPConn {private static final String ABAP_AS_POOLED = "ABAP_AS_WITH_POOL";static {Properties connectProperties = new Properties();connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "xxxx.xxxx.xxxx.xxxx");// 服务器connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "xx"); // 系统编号connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "xxx"); // SAP集团connectProperties.setProperty(DestinationDataProvider.JCO_USER, "xxxx"); // SAP用户名connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "xxxxx"); // 密码connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "ZH"); // 登录语言:ZH ENconnectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3"); // 最大连接数connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10"); // 最大连接线程createDataFile(ABAP_AS_POOLED, "jcoDestination", connectProperties);}/*** 创建SAP接口属性文件。** @param name*            ABAP管道名称* @param suffix*            属性文件后缀* @param properties*            属性文件内容*/private static void createDataFile(String name, String suffix, Properties properties) {File cfg = new File(name + "." + suffix);if (cfg.exists()) {cfg.deleteOnExit();}try {FileOutputStream fos = new FileOutputStream(cfg, false);properties.store(fos, "for tests only !");fos.close();} catch (Exception e) {System.out.println("Create Data file fault, error msg: " + e.toString());throw new RuntimeException("Unable to create the destination file " + cfg.getName(), e);}}/** * 获取SAP连接** @return SAP连接对象*/public static JCoDestination connect() {JCoDestination destination = null;try {destination = JCoDestinationManager.getDestination(ABAP_AS_POOLED);} catch (JCoException e) {System.out.println("Connect SAP fault, error msg: " + e.toString());}return destination;}
}

2.2 在java代码中测试连接

package com.cee.test;
import java.io.ObjectInputStream.GetField;
import com.cee.conn.SAPConn;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.JCoParameterList;
import com.sap.conn.jco.JCoTable;public class CheckSnFromSAP {public static void main(String[] args) {JCoFunction function = null;JCoDestination destination = SAPConn.connect();int result=0;//调用接口返回状态String message="";//调用接口返回信息try {//调用ZCHENH001函数function = destination.getRepository().getFunction("ZCHENH001");JCoParameterList input = function.getImportParameterList();input.setValue("P1", 10);input.setValue("P2", 2);input.setValue("OPERATOR", "?"); // 输入参数function.execute(destination);result= function.getExportParameterList().getInt("RESULT");//调用接口返回结果message= function.getExportParameterList().getString("MSG");//调用接口返回信息System.out.println("调用返回结果--->"+result+";调用返回状态--->"+message);}catch (Exception e) {e.printStackTrace();}}
}

运行结果如下:

测试一: 注入参数分别为:10,2,?

测试二: 注入参数分别为:10,2,/

 

JAVA调用SAP多个环境数据

1.生成通用配置文件

import java.io.File;
import java.io.FileOutputStream;
import java.util.Properties;
import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoDestinationManager;
import com.sap.conn.jco.JCoException;
import com.sap.conn.jco.ext.DestinationDataProvider;/*** 与SAP连接配置** @author 陈辉* @version v1.01**/
public class SAPConn {private static final String S4I100 = "ABAP_AS_WITH_POOL_S4DI00";private static final String S4D100 = "ABAP_AS_WITH_POOL_S4D100";private static final String S4D200 = "ABAP_AS_WITH_POOL_S4D200";private static final String S4D360 = "ABAP_AS_WITH_POOL_S4D360";private static final String S4Q800 = "ABAP_AS_WITH_POOL_S4Q800";private static final String S4P800 = "ABAP_AS_WITH_POOL_S4P800";static {Properties connectProperties = new Properties();connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "xxxx.xxxx.xxxx");// 服务器connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "xx"); // 系统编号connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "xxx"); // SAP集团connectProperties.setProperty(DestinationDataProvider.JCO_USER, "XXXX"); // SAP用户名connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "XXXXXXXX"); // 密码connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "ZH"); // 登录语言:ZH ENconnectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3"); // 最大连接数connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10"); // 最大连接线程createDataFile(S4I100, "jcoDestination", connectProperties);connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "xxxx.xxxx.xxxx");// 服务器connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "xx"); // 系统编号connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "xxx"); // SAP集团connectProperties.setProperty(DestinationDataProvider.JCO_USER, "XXXX"); // SAP用户名connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "XXXXXXXX"); // 密码connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "ZH"); // 登录语言:ZH ENconnectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3"); // 最大连接数connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10"); // 最大连接线程createDataFile(S4D100, "jcoDestination", connectProperties);connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "xxxx.xxxx.xxxx");// 服务器connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "xx"); // 系统编号connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "xxx"); // SAP集团connectProperties.setProperty(DestinationDataProvider.JCO_USER, "XXXX"); // SAP用户名connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "XXXXXXXX"); // 密码connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "ZH"); // 登录语言:ZH ENconnectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3"); // 最大连接数connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10"); // 最大连接线程createDataFile(S4D200, "jcoDestination", connectProperties);connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "xxxx.xxxx.xxxx");// 服务器connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "xx"); // 系统编号connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "xxx"); // SAP集团connectProperties.setProperty(DestinationDataProvider.JCO_USER, "XXXX"); // SAP用户名connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "XXXXXXXX"); // 密码connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "ZH"); // 登录语言:ZH ENconnectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3"); // 最大连接数connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10"); // 最大连接线程createDataFile(S4D360, "jcoDestination", connectProperties);connectProperties.setProperty(DestinationDataProvider.JCO_ASHOST, "xxxx.xxxx.xxxx");// 服务器connectProperties.setProperty(DestinationDataProvider.JCO_SYSNR, "xx"); // 系统编号connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "xxx"); // SAP集团connectProperties.setProperty(DestinationDataProvider.JCO_USER, "XXXX"); // SAP用户名connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "XXXXXXXX"); // 密码connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "ZH"); // 登录语言:ZH ENconnectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3"); // 最大连接数connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10"); // 最大连接线程createDataFile(S4Q800, "jcoDestination", connectProperties);// 组登录connectProperties.setProperty(DestinationDataProvider.JCO_R3NAME, "S4P");// SYSTEM IDconnectProperties.setProperty(DestinationDataProvider.JCO_MSHOST, "10.10.10.10");// 服务器connectProperties.setProperty(DestinationDataProvider.JCO_MSSERV, "3601"); // Message Server 服务端口connectProperties.setProperty(DestinationDataProvider.JCO_GROUP, "S4P"); // 组名称connectProperties.setProperty(DestinationDataProvider.JCO_CLIENT, "800"); // SAP集团connectProperties.setProperty(DestinationDataProvider.JCO_USER, "XXXXXX"); // SAP用户名connectProperties.setProperty(DestinationDataProvider.JCO_PASSWD, "XXXXXX"); // 密码connectProperties.setProperty(DestinationDataProvider.JCO_LANG, "ZH"); // 登录语言:ZH ENconnectProperties.setProperty(DestinationDataProvider.JCO_POOL_CAPACITY, "3"); // 最大连接数connectProperties.setProperty(DestinationDataProvider.JCO_PEAK_LIMIT, "10"); // 最大连接线程connectProperties.setProperty(DestinationDataProvider.JCO_MAX_GET_TIME, "360"); // 最大连接时间connectProperties.setProperty(DestinationDataProvider.JCO_SAPROUTER, "");// ROUTERcreateDataFile(S4P800, "jcoDestination", connectProperties);}/*** 创建SAP接口属性文件。** @param name       ABAP管道名称* @param suffix     属性文件后缀* @param properties 属性文件内容*/private static void createDataFile(String name, String suffix, Properties properties) {File cfg = new File(name + "." + suffix);if (cfg.exists()) {cfg.deleteOnExit();}try {FileOutputStream fos = new FileOutputStream(cfg, false);properties.store(fos, "仅仅测试使用");fos.close();} catch (Exception e) {System.out.println("创建参数配置文件失败: " + e.toString());throw new RuntimeException("无法创建创建参数文件:" + cfg.getName(), e);}}/** * 获取SAP连接** @return SAP连接对象*/public static JCoDestination connect(String SYSTEM) {JCoDestination destination = null;try {switch (SYSTEM) {case "S4I100":destination = JCoDestinationManager.getDestination(S4I100);break;case "S4D100":destination = JCoDestinationManager.getDestination(S4D100);break;case "S4D200":destination = JCoDestinationManager.getDestination(S4D200);break;case "S4D360":destination = JCoDestinationManager.getDestination(S4D360);break;case "S4Q800":destination = JCoDestinationManager.getDestination(S4Q800);break;case "S4P800":destination = JCoDestinationManager.getDestination(S4P800);break;default:destination = JCoDestinationManager.getDestination(S4D360);break;}System.out.println("已经连接到SAP: " + SYSTEM + "环境...");} catch (JCoException e) {System.out.println("无法连接到SAP: " + e.toString());}return destination;}
}

 2.调用测试RFC_READ_TABLE

import com.sap.conn.jco.JCoDestination;
import com.sap.conn.jco.JCoField;
import com.sap.conn.jco.JCoFunction;
import com.sap.conn.jco.JCoParameterList;
import com.sap.conn.jco.JCoTable;public class FM_RFC_READ_TABLE {enum SAP_SYSTEM {S4I100, S4D100, S4D200, S4D360, S4Q800, S4P800,}public static void main(String[] args) {JCoFunction function = null;JCoDestination destination = SAPConn.connect(SAP_SYSTEM.S4I100.toString());try {function = destination.getRepository().getFunction("RFC_READ_TABLE");JCoParameterList input = function.getImportParameterList();input.setValue("QUERY_TABLE", "T001");// 表名input.setValue("DELIMITER", ";");// 查询分隔符input.setValue("ROWCOUNT", "100");// 条目数JCoTable OPTIONS = function.getTableParameterList().getTable("OPTIONS");OPTIONS.appendRow();OPTIONS.setValue("TEXT", "BUKRS > 1000 AND LAND1 = 'CN' ");// 条件JCoTable FIELDS = function.getTableParameterList().getTable("FIELDS");FIELDS.appendRow();FIELDS.setValue("FIELDNAME", "MANDT");FIELDS.appendRow();FIELDS.setValue("FIELDNAME", "BUKRS");FIELDS.appendRow();FIELDS.setValue("FIELDNAME", "BUTXT");FIELDS.appendRow();FIELDS.setValue("FIELDNAME", "ORT01");// 其他字段...function.execute(destination);FIELDS = function.getTableParameterList().getTable("FIELDS");for (int i = 0; i < FIELDS.getNumRows(); i++) {FIELDS.setRow(i);for (JCoField fields : FIELDS) {if (fields.getName().toString().equals("FIELDNAME")) {System.out.print(String.format("%s\t", fields.getValue()));}}}System.out.println();JCoTable DATA = function.getTableParameterList().getTable("DATA");// 调用接口返回信息for (int i = 0; i < DATA.getNumRows(); i++) {DATA.setRow(i);for (JCoField fields : DATA) {String[] field = fields.getValue().toString().split(";");for (int j = 0; j < field.length; j++) {System.out.print(String.format("%s\t", field[j]));}}System.out.println();}} catch (Exception e) {e.printStackTrace();}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/206034.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BOM浏览器对象模型

BOM(Browser Object Model) 浏览器对象模型 操作浏览器api和接口 1.打开链接 返回一个窗口对象 w window.open(url,"_blank",wi…

原神:夏洛蒂是否值得培养?全队瞬抬治疗量不输五星,但缺点也很明显

作为四星冰系治疗角色&#xff0c;夏洛蒂的实战表现可以说相当让人惊喜。不仅有相当有意思的普攻动作以及技能特效&#xff0c;而且她还有治疗和挂冰等功能性。下面就来详细聊聊夏洛蒂是否值得培养。 【治疗量让人惊喜&#xff0c;但也有缺点】 说实话&#xff0c;在使用夏洛蒂…

陶陶摘苹果、跳跃游戏

1. 陶陶摘苹果 题目描述&#xff1a; 陶陶家的院子里有一棵苹果树&#xff0c;每到秋天树上就会结出 10 个苹果。苹果成熟的时候&#xff0c;陶陶就会跑去摘苹果。陶陶有个 30 厘米高的板凳&#xff0c;当她不能直接用手摘到苹果的时候&#xff0c;就会踩到板凳上再试试。 现在…

Spring第三课,Lombok工具包下载,对应图书管理系统列表和登录界面的后端代码,分层思想

目录 一、Lombok工具包下载 二、前后端互联的图书管理系统 规范 三、分层思想 三层架构&#xff1a; 1.表现层 2.业务逻辑层 3.数据层 一、Lombok工具包下载 这个工具包是为了做什么呢&#xff1f; 他是为了不去反复的设置setting and getting 而去产生的工具包 ⚠️工具…

(5h)Unity3D快速入门之Roll-A-Ball游戏开发

DAY1&#xff1a;Unity3D安装 链接 DAY2&#xff1a;构建场景&#xff0c;编写代码 链接 内容&#xff1a;WASD前后左右移动、摄像机跟随 DAY3&#xff1a;待更新 DAY4&#xff1a;待更新 DAY5&#xff1a;待更新

渗透测试|HW蓝队

记录某个对某个钓鱼事件中获取的钓鱼样本进行分析&#xff0c;以及简单的制作学习 样本行为分析 首先看到是 qq 邮箱发来的某个压缩包大概本身是带密码的&#xff0c;反手就丢到虚拟机先看下大概文件&#xff0c;解压后是这样的一个快捷方式 然后打开属性查看快捷方式&#x…

流程不会搭建?集简云上线AI智能创建流程功能,辅助您更简单地创建自动化流程

用户在使用集简云创建流程时&#xff0c;经常会遇到的两个问题&#xff1a; 1. 不知道要如何选择应用动作&#xff0c;和动作的执行顺序&#xff1b; 2. 应用动作设置中的字段匹配&#xff0c;不知道要如何选择对应的字段&#xff1b; 集简云基于大量历史数据积累与自训练AI模…

【001】sg-exam在线考试项目分析-项目结构技术栈

开源项目地址&#xff1a;https://gitee.com/wells2333/sg-exam 系统中服务器端 采用springboot mysql &#xff0c;oss 存储采用 七牛云 或minio 。项目依赖管理采用 gradle. 服务器端模块 &#xff1a; 项目启动入口在&#xff1a; 后台管理系统H5代码&#xff1a; PC端H…

k8s部署es和skywalking

使用k8s部署es和skywalking skywalking介绍 skywalking架构 整个架构&#xff0c;分成上、下、左、右四部分&#xff1a; 上部分 Agent &#xff1a;负责从应用中&#xff0c;收集链路信息&#xff0c;发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等…

java后端自学总结

自学总结 MessageSource国际化接口总结 MessageSource国际化接口 今天第一次使用MessageSource接口,比较意外遇到了一些坑 messageSource是spring中的转换消息接口&#xff0c;提供了国际化信息的能力。MessageSource用于解析 消息&#xff0c;并支持消息的参数化和国际化。 S…

Oracle SQL优化

1、书写顺序和执行顺序 在Oracle SQL中&#xff0c;查询的书写顺序和执行顺序是不同的。 1.1SQL书写顺序如下&#xff1a; SELECTFROMWHEREGROUP BYHAVINGORDER BY 1.2 SQL执行顺序 FROM&#xff1a;数据源被确定&#xff0c;表连接操作也在此步骤完成。 WHERE&#xff1a;对…

OpenAI再次与Altman谈判;ChatGPT Voice正式上线

11月22日&#xff0c;金融时报消息&#xff0c;OpenAI迫于超过700名员工联名信的压力&#xff0c;再次启动了与Sam Altman的谈判&#xff0c;希望他回归董事会。 在Sam确定加入微软后&#xff0c;OpenAI超700名员工签署了一封联名信&#xff0c;要求Sam和Greg Brockman&#x…

Web安全漏洞分析-XSS(下)

随着互联网的迅猛发展&#xff0c;Web应用的普及程度也愈发广泛。然而&#xff0c;随之而来的是各种安全威胁的不断涌现&#xff0c;其中最为常见而危险的之一就是跨站脚本攻击&#xff08;Cross-Site Scripting&#xff0c;简称XSS&#xff09;。XSS攻击一直以来都是Web安全领…

Flutter 控件查阅清单

为了方便记录和使用Flutter中的各种控件&#xff0c;特写此博客以记之&#xff0c;好记性不如烂笔头嘛&#xff1a;&#xff09; 通过控件的首字母进行查找&#xff0c;本文会持续更新 控件目录 AAppBar BCContainerColumn &#xff08;列&#xff09; DDivider (分割线) EElev…

汽车智能座舱/智能驾驶SOC -1

看到华为&小康的 AITO问界M6、M7各种广告营销、宣传、测评、好评如潮水般席卷网络各APP平台。翻看了中信和海通对特斯拉M3和比亚迪元的拆解报告&#xff0c;也好奇华为的汽车芯片平台又能做出哪些新花样&#xff0c;下面是Mark开头&#xff0c;也学习下智能座舱和智能驾驶芯…

一个基于.NET Core开源、跨平台的仓储管理系统

前言 今天给大家推荐一个基于.NET Core开源、跨平台的仓储管理系统&#xff0c;数据库支持MSSQL/MySQL&#xff1a;ZEQP.WMS。 仓储管理系统介绍 仓储管理系统&#xff08;Warehouse Management System&#xff0c;WMS&#xff09;是一种用于管理和控制仓库操作的软件系统&…

go学习之文件操作与命令行参数

文章目录 一、文件操作1.基本介绍2.常用文件操作函数和方法3.关于文件操作应用实例4.写文件操作应用实例&#xff08;创建文件并写入文件&#xff09;1&#xff09;基本介绍2&#xff09;基本应用实例-方式一 5.判断文件是否存在6.统计英文、数字、空格和其他字符数量 二、命令…

软件工程(九)

软件过程 定义 是软件生存周期中的一系列相关软件工程活动的集合&#xff0c;活动是任务的集合。 任务是将输入变换为输出的操作。 活动的执行可以是顺序的&#xff0c;重复的&#xff0c;并行的、嵌套的。 每一个软件过程由一组工作任务、项目里程碑、软件工程产品和交付…

leetcode 611. 有效三角形的个数(优质解法)

代码&#xff1a; class Solution {public int triangleNumber(int[] nums) {Arrays.sort(nums);int lengthnums.length;int n0; //三元组的个数//c 代表三角形最长的那条边for (int clength-1;c>2;c--){int left0;int rightc-1;while (left<right){if(nums[left]nums[r…

消息队列进阶-3.消息队列常见问题解决方案

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是爱吃芝士的土豆倪&#xff0c;24届校招生Java选手&#xff0c;很高兴认识大家&#x1f4d5;系列专栏&#xff1a;Spring源码、JUC源码、Kafka原理&#x1f525;如果感觉博主的文章还不错的话&#xff0c;请&#x1f44…