三月二十六日 安卓打卡app开发日志
今天上午 将打卡逻辑代码优化了一下
之后每天就只可以打卡一次了
public static String daka(String time_s, String time_e, String text, String account) {
Connection connection = JDBCUtils.getConn();
try {
if (connection != null) {
String sql1 = "SELECT * FROM infor WHERE date = ? AND account = ?";
PreparedStatement ps1 = connection.prepareStatement(sql1);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String currentDate = dateFormat.format(new Date());
ps1.setString(1, currentDate);
ps1.setString(2, account);
ResultSet resultSet = ps1.executeQuery();
if (!resultSet.next()) {
String sql = "INSERT INTO infor (time_s, time_e, text, account, date) VALUES (?, ?, ?, ?, ?)";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, time_s);
ps.setString(2, time_e);
ps.setString(3, text);
ps.setString(4, account);
ps.setString(5, currentDate);
int rs = ps.executeUpdate();
return rs > 0 ? "1" : "-1"; // 如果执行结果大于0,说明打卡成功,返回"1";否则返回"-1"
} else {
return "-1"; // 今日已打卡,返回"-1"
}
} else {
return "0"; // 连接数据库失败,返回"0"
}
} catch (Exception e) {
e.printStackTrace();
return "0"; // 发生异常,返回"0"
} finally {
// 可以在这里关闭连接等资源
}
}
public void 打卡2(View view) {
// 获取开始时间
int startHour = startTimePicker.getHour();
int startMinute = startTimePicker.getMinute();
// 获取结束时间
int endHour = endTimePicker.getHour();
int endMinute = endTimePicker.getMinute();
// 将开始时间转换为字符串形式
String startTime = String.format("%02d:%02d", startHour, startMinute);
// 将结束时间转换为字符串形式
String endTime = String.format("%02d:%02d", endHour, endMinute);
// 获取学习内容
String studyContent = studyContentEditText.getText().toString();
Intent intent = getIntent();
String account = intent.getStringExtra("account");
new Thread(){
@Override
public void run() {
String result = UserDao.daka(startTime, endTime, studyContent, account);
switch (result) {
case "1":
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(Clock_in.this, "打卡成功", Toast.LENGTH_LONG).show();
}
});
break;
case "-1":
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(Clock_in.this, "今日已打卡", Toast.LENGTH_LONG).show();
}
});
break;
case "0":
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(Clock_in.this, "连接数据库失败", Toast.LENGTH_LONG).show();
}
});
break;
}
}
}.start();
}
三月二十六日 安卓打卡app开发日志的更多相关文章
- 安卓 打飞机 app 开发 第一篇
先上效果图 其实,当时刚买 htc G8 的时候(那时北京的房价还是6千一平),安卓2.1 ,2.3 的时候就已经有安卓方面的开发的兴趣,但后来就没有弄过... today 突然想起来,手机上连个游戏 ...
- PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [7] APP 错误日志接口
APP 上线以后可能遇到的问题: ① APP 强退 ② 数据加载失败 ③ APP 潜在问题 错误日志需要记录的内容 数据表 error_log 字段: id app_id:app 类别 id did: ...
- 使用ionic与cordova(phonegap)进行轻量级app开发前的环境配置与打包安卓apk过程记录
前言 有人说:"如果你恨一个人,就让ta去接触cordova(phonegap)",这是因为这里面的水很深,坑很多,真让人不是一般地发狂.或许有幸运的人儿基本顺顺利利就配置完环境 ...
- 安卓app开发-05-Android xml布局详细介绍
安卓app开发-05-Android xml布局详细介绍 虽然说有 墨刀,墨客 这些图形化开发工具来做 Android 的界面设计,但是我们还是离不开要去学习做安卓原生app,学习 xml 布局还是必 ...
- 安卓app开发-03-项目的基本开发步骤
android项目的基本开发步骤 这里分享一下开发 安卓 app 的流程,当然有些感觉不必要,其实不然,前期工作也是极为重要的额,就像开发的时候如果目标不对的话,到后期后很迷的,所以一定要提前做好规划 ...
- 安卓app开发-02-安卓app快速开发
安卓app开发-02-安卓app快速开发 上一篇介绍了安卓 app 开发的工具和环境配置,本篇不涉及编程技术,适合小团队快速高效开发 APP制作流程 当有一个APP创意,该如何实现呢?是花数十万找AP ...
- 安卓app开发-01-开发工具及环境配置
安卓app开发-01-开发工具及环境配置 请大家根据推荐指数和自己的意愿选择 使用 Android Studio 1.可以使用 Android Studio 下载地址:http://www.andro ...
- ios开发和安卓app开发有哪些区别
ios平台和Android平台开发APP应用程序主要区别:一.编码语言Android平台开发中是使用Java,ios平台则是使用的Objective-C和Swift.需要注意的是,如果你是要用ios进 ...
- 安卓APP开发的初步了解
今天成功安装了Android Studio 并且对APP的开发框架结构进行了初步了解 如上图:app基本结构情况 下面来仔细解释一下各个方面目录的作用 首先 manifests目录:包含Android ...
- 人人都学会APP开发 提高就业竞争力 简单实用APP应用 安卓浏览器APP 企业内部通用APP制作 制造业通用APP
安卓从2009年开始流程于手机.平板,已经是不争的非常强大生产力工具,更为社会创造非常高的价值, 现在已经是202X年,已经十几年的发展,安卓平台已经无所不在. 因此建议人人都学学APP制作,简易入门 ...
随机推荐
- 基于WASM的无侵入式全链路A/B Test实践
简介: 我们都知道,服务网格(ServiceMesh)可以为运行其上的微服务提供无侵入式的流量治理能力.通过配置VirtualService和DestinationRule,即可实现流量管理.超时重试 ...
- 10种编程语言实现Y组合子
简介: Y组合子是Lambda演算的一部分,也是函数式编程的理论基础.它是一种方法/技巧,在没有赋值语句的前提下定义递归的匿名函数,即仅仅通过Lambda表达式这个最基本的"原子" ...
- Hologres如何支持亿级用户UV计算
简介: 本文将介绍阿里云Hologres如何基于RoaringBitmap进行UV等高复杂度计算的方案,实现亿级用户万级标签亚秒级分析,帮助用户从Kylin平滑迁移到Hologres,实现更实时.开发 ...
- 如何使用 Kubernetes 监测定位慢调用
简介:本次课程主要分为三大部分,首先将介绍慢调用的危害以及常见的原因:其次介绍慢调用的分析方法以及最佳实践:最后将通过几个案例来去演示一下慢调用的分析过程. 作者:李煌东 大家好,我是阿里云的李煌东 ...
- Dapr 在阿里云原生的实践
简介: Faas 场景下,比较吸引用户的是成本和研发效率,成本主要通过按需分配和极致的弹性效率来达成.而应用开发者期望通过 FaaS 提供多语言的编程环境,提升研发效率,包括启动时间.发布时间.开发的 ...
- WPF开源轻便、快速的桌面启动器
前言 今天大姚给大家分享一款WPF开源.简单.轻便.快速的桌面启动器(支持多主题.多语言:简体中文.繁体中文.英文等):CurvaLauncher. WPF介绍 WPF 是一个强大的桌面应用程序框架, ...
- [Gin] 传统 for 循环中的语义通用化,在 golang 中使用分号 ; 替代 && 流程控制
// gin.go // HandlerFunc defines the handler used by gin middleware as return value. type HandlerFun ...
- [FAQ] web3js, Error: Please pass numbers as strings or BN objects to avoid precision errors.
我们在调用合约方法时,都可以传一些参数的,比如转账金额 value. value 的单位是 wei,这是一个很小的单位,所以一般数值很大. 注意,把 ether 转 wei 需要先把 ether 的值 ...
- 2018-8-29-dotnet-core-2.1-使用阶梯编译
title author date CreateTime categories dotnet core 2.1 使用阶梯编译 lindexi 2018-08-29 08:49:12 +0800 201 ...
- 通过 KoP 将 Kafka 应用迁移到 Pulsar
通过 KoP 将 Kafka 应用迁移到 Pulsar 版权声明:原文出自 https://github.com/streamnative/kop ,由 Redisant 进行整理和翻译 目录 通过 ...