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

端云协同机制实战的总结

相关推荐
Lanren的编程日记23 分钟前
Flutter 鸿蒙应用内存管理优化实战:对象池+智能缓存+泄漏检测,全方位提升应用稳定性
flutter·缓存·华为·harmonyos
想你依然心痛34 分钟前
HarmonyOS 6(API 23)游戏开发实战:基于 Face AR & Body AR 的“律动星途“体感音游
华为·ar·harmonyos·body·face·悬浮导航·沉浸光感
liulian09161 小时前
【Flutter for OpenHarmony 第三方库】Flutter for OpenHarmony 实时聊天功能适配与实现指南
flutter·华为·学习方法·harmonyos
Lanren的编程日记1 小时前
Flutter 鸿蒙应用多设备同步功能实战:完整同步协议+冲突解决机制,打造跨设备一致体验
flutter·华为·harmonyos
想你依然心痛1 小时前
HarmonyOS 6(API 23)实战:基于 Face AR 专注度检测与 Body AR 手势互动的“智能互动课堂“教师授课系统
华为·ar·harmonyos·悬浮导航·沉浸光感·face ar·body ar
小成Coder1 小时前
【Jack实战】如何用 UserAuthenticationKit 给 HarmonyOS 应用加一道本地身份验证
华为·harmonyos
UnicornDev2 小时前
【HarmonyOS 6】设置页面 UI 设计
ui·华为·harmonyos·arkts·鸿蒙
Hello__777716 小时前
开源鸿蒙 Flutter 实战|消息通知功能完整实现
flutter·开源·harmonyos
敲代码的鱼哇18 小时前
发送短信/拨打电话/获取联系人能力 UTS 插件(cz-sms)
android·前端·ios·uni-app·安卓·harmonyos·鸿蒙
Hello__777718 小时前
开源鸿蒙 Flutter 实战|仓库评论与点赞功能完整实现
flutter·开源·harmonyos