鸿蒙ArkTS和华为云Java构建及mysql数据库端云协同机制实战

1. 华为云云函数的Java8的申请

2. Java工程本地构建

编写代码如下:

package com.huawei.demo;

import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.huawei.services.runtime.Context;
import com.huawei.services.runtime.entity.apig.APIGTriggerEvent;
import com.huawei.services.runtime.entity.apig.APIGTriggerResponse;
import com.huawei.services.runtime.entity.dis.DISTriggerEvent;
import com.huawei.services.runtime.entity.dms.DMSTriggerEvent;
import com.huawei.services.runtime.entity.lts.LTSTriggerEvent;
import com.huawei.services.runtime.entity.smn.SMNTriggerEvent;
import com.huawei.services.runtime.entity.timer.TimerTriggerEvent;
import com.huawei.services.runtime.entity.eventgrid.EventGridTriggerEvent;

public class TriggerTests {
public static void main(String args\[\]) {}
public APIGTriggerResponse apigTest(APIGTriggerEvent event, Context context){
System.out.println(event);

JSONArray arrays = new JSONArray();

for(int i =0;i<4;i++)
{
JSONObject obj = new JSONObject();
obj.put("num", i);
obj.put("name", "张"+i);
arrays.add(obj);
}

Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
return new APIGTriggerResponse(200, headers, arrays.toJSONString());
}

public String smnTest(SMNTriggerEvent event, Context context){
System.out.println(event);
return "ok";
}

public String dmsTest(DMSTriggerEvent event, Context context){
System.out.println(event);
return "ok";
}

public String timerTest(TimerTriggerEvent event, Context context){
System.out.println(event);
return "ok";
}

public String disTest(DISTriggerEvent event, Context context) throws UnsupportedEncodingException{
System.out.println(event);
System.out.println(event.getMessage().getRecords()0.getRawData());
return "ok";
}

public String ltsTest(LTSTriggerEvent event, Context context) throws UnsupportedEncodingException {
System.out.println(event);
event.getLts().getData();
System.out.println("raw data: " + event.getLts().getRawData());
return "ok";
}

public String eventgridTest(EventGridTriggerEvent event, Context context){
System.out.println(event);return "ok";
}
}

3. 花生壳和mysql数据库映射

编写代码如下:

package com.huawei.demo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.lixin.model.Users;

public class DB {

private Connection conn;

public DB() {

try {
Class.forName("com.mysql.cj.jdbc.Driver");

conn = DriverManager.getConnection("jdbc:mysql://43.228.71.225:49254/jk202508", "root", "123456");

System.out.println("连接数据库成功:"+conn);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public List<Users> queryUserDatas()
{

String sql="select * from t_user";

List<Users> lists = new ArrayList<Users>();

try {
PreparedStatement pstmt = conn.prepareStatement(sql);

ResultSet rs = pstmt.executeQuery();

while(rs.next())
{
Users u =new Users();
u.setUid(rs.getInt(1));
u.setUname(rs.getString(2));
u.setUpwd(rs.getString(3));
lists.add(u);

}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {

if(null!=conn)
{
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

return lists;

}

}

package com.lixin.model;

public class Users {

public int getUid() {
return uid;
}

public void setUid(int uid) {
this.uid = uid;
}

public String getUname() {
return uname;
}

public void setUname(String uname) {
this.uname = uname;
}

public String getUpwd() {
return upwd;
}

public void setUpwd(String upwd) {
this.upwd = upwd;
}

private int uid;

private String uname;

private String upwd;

}

package com.huawei.demo;

import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONArray;
import com.huawei.services.runtime.Context;
import com.huawei.services.runtime.entity.apig.APIGTriggerEvent;
import com.huawei.services.runtime.entity.apig.APIGTriggerResponse;
import com.huawei.services.runtime.entity.dis.DISTriggerEvent;
import com.huawei.services.runtime.entity.dms.DMSTriggerEvent;
import com.huawei.services.runtime.entity.eventgrid.EventGridTriggerEvent;
import com.huawei.services.runtime.entity.lts.LTSTriggerEvent;
import com.huawei.services.runtime.entity.smn.SMNTriggerEvent;
import com.huawei.services.runtime.entity.timer.TimerTriggerEvent;
import com.lixin.model.Users;

public class TriggerTests {

public APIGTriggerResponse apigTest(APIGTriggerEvent event, Context context) {

//通过映射本地数据库,做到了上云操作
DB db = new DB();
List<Users> lists =db.queryUserDatas();

//转换成JSON数据格式
JSONArray arrays =new JSONArray();
String result = arrays.toJSONString(lists);

Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
return new APIGTriggerResponse(200, headers, result);
}

public String smnTest(SMNTriggerEvent event, Context context) {
System.out.println(event);
return "ok";
}

public String dmsTest(DMSTriggerEvent event, Context context) {
System.out.println(event);
return "ok";
}

public String timerTest(TimerTriggerEvent event, Context context) {
System.out.println(event);
return "ok";
}

public String disTest(DISTriggerEvent event, Context context) throws UnsupportedEncodingException {
System.out.println(event);
System.out.println(event.getMessage().getRecords()0.getRawData());
return "ok";
}

public String ltsTest(LTSTriggerEvent event, Context context) throws UnsupportedEncodingException {
System.out.println(event);
event.getLts().getData();
System.out.println("raw data: " + event.getLts().getRawData());
return "ok";
}

public String eventgridTest(EventGridTriggerEvent event, Context context) {
System.out.println(event);
return "ok";
}
}

4 鸿蒙 ArkTS(端)+ 华为云 Java(云)+ MySQL(数据库) 总结

端云协同机制实战的总结

相关推荐
贾伟康6 小时前
【共创稿事节】HarmonyOS 7.0 AOT编译优化:从接入到生产验证
harmonyos·arkts·路由·navigation·navdestination
2601_949480067 小时前
开源鸿蒙平台 CMP 三方库「shadcn」适配全流程
华为·开源·harmonyos
Liaiyang668 小时前
空圈容错视角-HarmonyOS 7 架构体检:从被动容错到主动免疫的真伪验证与生态反推
操作系统·harmonyos·架构设计·ai-agent·端云协同·鸿蒙7·空圈容错
贾伟康9 小时前
【共创稿事节】HarmonyOS 7.0 Native XComponent与FFI:从接入到生产验证
harmonyos·profiler·hitracemeter·性能追踪·时间线
redtank200010 小时前
纯血鸿蒙本地电子书阅读器实测:九格式支持、沉浸阅读与零联网隐私设计
华为·harmonyos
贾伟康10 小时前
【共创稿事节】HarmonyOS 7.0 HiSysEvent系统事件订阅:从接入到生产验证
harmonyos·可观测性·hisyevent·系统事件·后台优化
独隅12 小时前
HarmonyOS 系统能力与体验深度评测 - 超详细版
华为·harmonyos
懿路向前13 小时前
唤醒工作台全实录(六):数据层——5ms 竞态窗口与“查询即引用“
华为·架构·harmonyos
KevinChaos14 小时前
灶台菜谱设计手记 04|HarmonyOS 7.0 空间化:信息折叠展开
harmonyos
贾伟康16 小时前
【共创稿事节】HarmonyOS 7.0 HiTraceChain分布式调用链:从接入到生产验证
分布式·harmonyos·可观测性·调用链·hitracechain