公司网站建设沈阳长春网站优化教程

张小明 2025/12/23 8:31:55
公司网站建设沈阳,长春网站优化教程,手机建站系统源码,网站制度建设一、概述 1. 案例介绍 本案例通过本地IDEA连接华为云开发环境#xff0c;通过本地的IDEA进行远程编程并连接GaussDB数据库来构建抽奖小程序应用。 GaussDB 是华为自研的企业级分布式关系型数据库#xff0c;具备强大的分布式事务能力、同城多可用区部署、数据零丢失保障、…一、概述1. 案例介绍本案例通过本地IDEA连接华为云开发环境通过本地的IDEA进行远程编程并连接GaussDB数据库来构建抽奖小程序应用。GaussDB 是华为自研的企业级分布式关系型数据库具备强大的分布式事务能力、同城多可用区部署、数据零丢失保障、PB级存储扩展等特性。它支持高可用、高安全、弹性伸缩、一键部署、备份恢复和监控告警适用于对性能、可靠性和扩展性有高要求的企业级应用场景。华为开发者空间是为全球开发者打造的专属开发者空间致力于为每位开发者提供一台云主机、一套开发工具和云上存储空间汇聚昇腾、鸿蒙、鲲鹏、GaussDB、欧拉等华为各项根技术的开发工具资源并提供配套案例指导开发者从开发编码到应用调测基于华为根技术生态高效便捷的知识学习、技术体验、应用创新。2. 适用对象企业个人开发者高校学生3. 案例时间本案例总时长预计60分钟。4. 案例流程说明用户进入华为开发者空间云开发环境通过CLI工具连接云开发环境获取GaussDB实例并配置编写应用代码并连接数据库构建抽奖应用程序。5. 资源总览本案例预计花费0.8元。资源名称规格单价元时长分钟华为开发者空间 - 云开发环境鲲鹏通用计算增强型 kc1 | 2vCPUs | 4G | HCE免费60GaussDBgaussdb.opengauss.xe.dn.s6.xlarge.x864.ha|4 vCPUs | 16 GB免费60虚拟私有云VPC标配免费60弹性公网IP按流量计费 5Mbit/s0.8元/GB60二、配置云开发环境本案例中使用华为云《开发者空间云开发环境使用指导》的“三、PC端创建和管理云开发环境”章节完成cli工具安装、环境配置、创建云开发环境、开机、建立隧道连接的功能。三、IntelliJ IDEA直连云开发环境参考《本地IntelliJ IDEA 基于华为开发者空间云开发环境的应用开发》的“三、本地IDE直连云开发环境完成上传下载”中的“1.下载IntelliJ IDEA并连接远程开发环境”章节完成IntelliJ IDEA直连云开发环境。四、获取GaussDB数据库实例并配置4.1 获取GaussDB数据库实例默认情况下GaussDB数据库实例已开通如未开通可参考购买GaussDB实例在GaussDB数据库实例的基础信息页修改安全组开放22端口与8000端口新建数据库数据库名称PrizeDrawDB其他参数默认即可4.2 修改GaussDB数据库密码验证方式进入GaussDB数据库控制台进入GaussDB实例点击参数管理修改GaussDB的密码验证参数 password_encryption_type 为 1并点击保存生效。在弹出窗口输入YES点击确定按钮五、使用云开发环境完成抽奖小应用开发5.1 新建远程项目项目名称PrizeDrawAppLocation/home/developerBuild systemMavenJDK默认即可。java项目创建完成后则可以看到相应的代码目录5.2 添加postgresql依赖包在pom.xml中添加依赖dependencies dependency groupIdorg.postgresql/groupId artifactIdpostgresql/artifactId version42.6.0/version !-- 使用适合您环境的版本 -- /dependency /dependencies点击Sync All Maven Projects同步Maven项目下载依赖5.3 编写项目代码替换Main.java中的代码Main.java完整代码package org.example; import java.sql.*; import java.util.Random; import java.util.Scanner; public class Main { // 数据库连接信息 - 请替换为您的实际信息 private static final String JDBC_URL jdbc:postgresql://xx.xx.xx.xx:8000/xxxx; private static final String USERNAME root; private static final String PASSWORD xxxx; // 奖品配置 private static final String[] PRIZES { 谢谢参与, 优惠券10元, 优惠券50元, 华为云代金券100元, 华为手机, 华为笔记本电脑 }; // 奖品概率总和100 private static final int[] PRIZE_PROBABILITY {40, 30, 15, 10, 4, 1}; private static Connection connection; private static Scanner scanner new Scanner(System.in); private static Random random new Random(); public static void main(String[] args) { try { // 初始化数据库 initDatabase(); System.out.println( 欢迎来到华为云幸运抽奖系统 ); while (true) { System.out.println(\n请选择操作:); System.out.println(1. 用户注册); System.out.println(2. 开始抽奖); System.out.println(3. 查看我的中奖记录); System.out.println(4. 退出); System.out.print(请输入选择: ); int choice scanner.nextInt(); scanner.nextLine(); // 消耗换行符 switch (choice) { case 1: registerUser(); break; case 2: drawPrize(); break; case 3: viewRecords(); break; case 4: System.out.println(感谢使用再见); return; default: System.out.println(无效的选择请重新输入); } } } catch (Exception e) { e.printStackTrace(); } finally { closeResources(); } } // 初始化数据库 private static void initDatabase() throws Exception { Class.forName(org.postgresql.Driver); connection DriverManager.getConnection(JDBC_URL, USERNAME, PASSWORD); // 创建用户表 String createUserTable CREATE TABLE IF NOT EXISTS users ( id SERIAL PRIMARY KEY, username VARCHAR(50) UNIQUE NOT NULL, phone VARCHAR(20) UNIQUE NOT NULL, register_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); // 创建抽奖记录表 String createRecordTable CREATE TABLE IF NOT EXISTS prize_records ( id SERIAL PRIMARY KEY, user_id INTEGER REFERENCES users(id), prize_name VARCHAR(100) NOT NULL, draw_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); try (Statement stmt connection.createStatement()) { stmt.execute(createUserTable); stmt.execute(createRecordTable); System.out.println(数据库初始化完成); } } // 用户注册 private static void registerUser() throws SQLException { System.out.println(\n 用户注册 ); System.out.print(请输入用户名: ); String username scanner.nextLine(); System.out.print(请输入手机号: ); String phone scanner.nextLine(); String sql INSERT INTO users (username, phone) VALUES (?, ?); try (PreparedStatement pstmt connection.prepareStatement(sql)) { pstmt.setString(1, username); pstmt.setString(2, phone); pstmt.executeUpdate(); System.out.println(注册成功); } catch (SQLException e) { System.out.println(注册失败: e.getMessage()); } } // 抽奖 private static void drawPrize() throws SQLException { System.out.println(\n 幸运抽奖 ); System.out.print(请输入您的手机号: ); String phone scanner.nextLine(); // 查询用户ID Integer userId getUserIdByPhone(phone); if (userId null) { System.out.println(未找到该用户请先注册); return; } // 随机抽奖 int prizeIndex getRandomPrizeIndex(); String prize PRIZES[prizeIndex]; // 记录中奖信息 String sql INSERT INTO prize_records (user_id, prize_name) VALUES (?, ?); try (PreparedStatement pstmt connection.prepareStatement(sql)) { pstmt.setInt(1, userId); pstmt.setString(2, prize); pstmt.executeUpdate(); } System.out.println(\n恭喜您); System.out.println(您获得了: prize); System.out.println(奖品已记录到您的账户); } // 根据概率随机获取奖品索引 private static int getRandomPrizeIndex() { int randomNum random.nextInt(100) 1; int range 0; for (int i 0; i PRIZE_PROBABILITY.length; i) { range PRIZE_PROBABILITY[i]; if (randomNum range) { return i; } } return 0; // 默认返回谢谢参与 } // 根据手机号获取用户ID private static Integer getUserIdByPhone(String phone) throws SQLException { String sql SELECT id FROM users WHERE phone ?; try (PreparedStatement pstmt connection.prepareStatement(sql)) { pstmt.setString(1, phone); ResultSet rs pstmt.executeQuery(); if (rs.next()) { return rs.getInt(id); } } return null; } // 查看中奖记录 private static void viewRecords() throws SQLException { System.out.println(\n 我的中奖记录 ); System.out.print(请输入您的手机号: ); String phone scanner.nextLine(); Integer userId getUserIdByPhone(phone); if (userId null) { System.out.println(未找到该用户请先注册); return; } String sql SELECT prize_name, draw_time FROM prize_records WHERE user_id ? ORDER BY draw_time DESC; try (PreparedStatement pstmt connection.prepareStatement(sql)) { pstmt.setInt(1, userId); ResultSet rs pstmt.executeQuery(); System.out.println(\n中奖记录:); System.out.println(-----------------------------); boolean hasRecord false; while (rs.next()) { hasRecord true; String prize rs.getString(prize_name); Timestamp time rs.getTimestamp(draw_time); System.out.printf(奖品: %-15s 时间: %tF %tT%n, prize, time, time); } if (!hasRecord) { System.out.println(暂无中奖记录快去抽奖吧); } System.out.println(-----------------------------); } } // 关闭资源 private static void closeResources() { try { if (connection ! null) connection.close(); if (scanner ! null) scanner.close(); } catch (SQLException e) { e.printStackTrace(); } } }注意JDBC_URL中的xx.xx.xx.xx要替换成数据库绑定的弹性公网IPxxxx要替换成数据库名称PASSWORD中的xxxx要替换成登录数据库的密码。5.4 运行代码运行代码后先选择用户注册再选择开始抽奖若出现以下错误Invalid or unsupported by client SCRAM mechanisms则需要重置密码重置密码后回到数据库参数管理界面点击高风险参数输入password_lock_time搜索将password_lock_time的值改为0并保存。即可重新登录。注意代码中需要重新配置新密码。代码运行成功之后我们在数据库SQL查询页面可以看到代码中创建的用户表和抽奖记录表至此就完成了从云开发环境到GaussDB创建应用连接的全部流程了。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

云南网站推广帮忙找人做网站

使用 Sysprep 克隆磁盘的全面指南 磁盘成像工具介绍 磁盘成像主要分为两个阶段:准备磁盘映像和克隆磁盘映像。准备磁盘映像所需的所有工具都位于 Windows CD 的 Deploy.cab 文件中,该文件在 Support\Tools 文件夹里,可通过在 Windows 资源管理器中打开该文件来提取其内容。…

张小明 2025/12/21 2:16:55 网站建设

企业网站的建设流程包含哪些环节做门户网站用什么模板

Kotaemon新闻摘要生成:7x24小时自动资讯简报 在金融交易室、媒体编辑部或企业战略部门,每天清晨打开邮箱看到几十条未读新闻推送时,你是否曾感到信息过载的窒息?更令人焦虑的是,关键事件可能在发布后10分钟内就影响股…

张小明 2025/12/21 2:14:54 网站建设

网站开发的软件环境有哪些个人做淘宝客网站好做吗

如何用3900万参数的Whisper-Tiny.en实现高效语音识别:2025年完整指南 【免费下载链接】whisper-tiny.en 项目地址: https://ai.gitcode.com/hf_mirrors/openai/whisper-tiny.en OpenAI推出的Whisper-Tiny.en语音识别模型以仅3900万参数实现了8.4%的单词错误…

张小明 2025/12/21 2:12:53 网站建设

关于网站建设的软文国外的有名的网站

EmotiVoice语音多样性增强策略解析 在虚拟偶像的一场直播中,观众刷出“送你火箭!”弹幕的瞬间,屏幕上的角色突然声音上扬、语速加快:“哇!真的吗?太感谢啦~”——这句饱含惊喜情绪的回应&#…

张小明 2025/12/21 2:10:51 网站建设

上传商品的网站wordpress表格功能

Path of Building:流放之路角色构筑的终极解决方案 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/gh_mirrors/pat/PathOfBuilding 还在为《流放之路》复杂的角色构筑而烦恼吗?每次更…

张小明 2025/12/21 2:08:50 网站建设

网站页面设计模板图片外贸推广建站蓝颜seo牛

于食品加工跟农产品精选范畴之中,视觉色选机乃是达成自动化以及智能化分选的关键装备。它的工作原理是借助高分辨率相机去捕捉物料的光学特征,再结合光谱分析或者可见光成像,经由高速处理器与智能算法来实时识别异色粒、瑕疵品或者杂质&#…

张小明 2025/12/21 2:06:48 网站建设