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

端云协同机制实战的总结

相关推荐
程序猿追19 分钟前
一次右尾概率实验:statrs4cj 的 CJMP 鸿蒙接入与双端实测
华为·harmonyos
大雷神1 小时前
从一道24点到同屏双人派对:用鸿蒙开发助手起步,复用已有App开发手机元服务
华为·智能手机·harmonyos
song5012 小时前
React Native for OpenHarmony 实战:三方库 react-native-parallax-scroll-view 的鸿蒙化适配指南
分布式·react native·react.js·transformer·harmonyos
贾伟康2 小时前
HarmonyOS ArkUI 日历范围选择不歧义:本地日期键、闭区间与闰日校验
harmonyos·状态机·arkui·闰年·日期范围
song5014 小时前
React Native for OpenHarmony 实战:三方库 react-native-ratings 的鸿蒙化适配指南
javascript·react native·react.js·分类·harmonyos
大雷神5 小时前
用鸿蒙开发助手推进《3D种植》鸿蒙版与 Flame 库适配
3d·华为·harmonyos
轻口味5 小时前
HarmonyOS 7 新特性7:闪控窗深潜——六态流转、错误码二维查表与730ms双通道滞后真机实测
华为·harmonyos·鸿蒙·floatview
程序猿追5 小时前
从 24 到 25 字节:compactstr4cj 的 CJMP 鸿蒙适配与 UTF-8 实测
华为·harmonyos
HarmonyOS_SDK5 小时前
【HarmonyOS API 26 】数字盾服务2.0:硬件级安全的随身虚拟U盾
harmonyos
2501_919749038 小时前
华为鸿蒙免费日记本—小羊日记
华为·harmonyos·鸿蒙