鸿蒙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(数据库) 总结

端云协同机制实战的总结

相关推荐
HMS Core8 小时前
HarmonyOS智慧多窗,让应用在任意窗口都“恰到好处”
harmonyos
梦想不只是梦与想9 小时前
鸿蒙 应用发布准备工作(一)
harmonyos·鸿蒙上架·鸿蒙应用发布
马剑威(威哥爱编程)11 小时前
【共创稿事节】HarmonyOS 7 文搜图实战:自然语言检索本地图片,全流程端侧闭环
华为·harmonyos
李游Leo11 小时前
HarmonyOS 7 HAR + HSP 工程化实战:模块复用、包体积控制与依赖边界
harmonyos
用户5930960097813 小时前
Flutter 鸿蒙化实战:r_upgrade 适配 OpenHarmony,应用升级检查与弹窗
harmonyos
youyin13 小时前
HarmonyOS 鸿蒙 ArkTS/ArkUI 装饰器大全
华为·harmonyos
轻口味14 小时前
HarmonyOS 7 新特性1:闪控窗——轻规划里的专注倒计时,跟着你走出应用
harmonyos·鸿蒙·移动端·闪控窗
用户5930960097814 小时前
Flutter 鸿蒙化实战:record_mp3 适配 OpenHarmony,边录音边出 MP3
harmonyos
youyin15 小时前
HarmonyOS ArkTS 与智能融合案例之实时语音翻译应用 实验指导书和代码
华为·harmonyos
木子雨廷15 小时前
第 16 天|网络四态:loading、error、empty、content
harmonyos