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

端云协同机制实战的总结

相关推荐
woshihuanglaoshi3 小时前
鸿蒙技术进阶全景高级成长体系:从初中级到架构师的技能树/学习路径/项目实战/认证体系系统性方法论
学习·华为·harmonyos
轻口味3 小时前
端侧 AI 赋能鸿蒙版 Obsidian:轻规划基于 HarmonyOS 7.0 图像超分特性的体验突破与开发实战
人工智能·华为·harmonyos·鸿蒙
OH_TPC5 小时前
【鸿蒙优选三方库】@ohos/lottie:让 After Effects 动画在 HarmonyOS 上稳定播放
华为·harmonyos·鸿蒙
李蚊子7 小时前
鸿蒙应用开发实践与上架复盘
harmonyos
2501_919749037 小时前
华为鸿蒙训练口才APP—小羊口才
华为·harmonyos·鸿蒙
大锅盖18 小时前
HarmonyOS 摄像头焦点管理的完整工程实现
华为·harmonyos
woshihuanglaoshi10 小时前
鸿蒙老旧项目升级改造高级:API废弃迁移/ArkTS语法升级/架构重构策略/增量迁移/风险管控方案
学习·华为·重构·架构·harmonyos·鸿蒙
星空真迷人1 天前
嵌入式鸿蒙并非精简版,核心究竟是什么?
stm32·单片机·嵌入式硬件·物联网·华为·harmonyos·iot
OH_TPC1 天前
【鸿蒙优选三方库】@ohos/ijkplayer:在鸿蒙上像 B 站一样流畅播视频
华为·音视频·harmonyos·鸿蒙
2501_919749031 天前
华为鸿蒙经期记录APP—小羊月经
华为·harmonyos·鸿蒙