目前打卡系統基本完成
沒有實現的功能有無法統計次數 和 連線本地資料庫
我全程連線的遠端資料庫
package com.example.test_four.utils; import java.sql.Connection; import java.sql.DriverManager; /** * function: 資料庫工具類,連線資料庫用 */ public class JDBCUtils { private static final String TAG = "mysql-party-JDBCUtils"; private static String driver = "com.mysql.jdbc.Driver";// MySql驅動 private static String dbName = "party";// 資料庫名稱 private static String user = "root";// 使用者名稱 private static String password = "123456";// 密碼 public static Connection getConn(){ Connection connection = null; try{ Class.forName(driver);// 動態載入類 String ip = "192.168.180.241";// 寫成本機地址,不能寫成localhost,同時手機和電腦連線的網路必須是同一個 // 嘗試建立到給定資料庫URL的連線 connection = DriverManager.getConnection("jdbc:mysql://" + ip + ":3306/" + dbName, user, password); }catch (Exception e){ e.printStackTrace(); } return connection; } }
還有周一設定目標 週五進行分析 的限制程式碼
public void 分析(View view) { Calendar calendar = Calendar.getInstance(); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); // 判斷當前系統日期是否為週五(Calendar.FRIDAY 對應值為6) if (dayOfWeek == Calendar.SUNDAY) { String account = getIntent().getStringExtra("account"); Intent intent = new Intent(this, analysis.class); intent.putExtra("account", account); startActivity(intent); } else { // 如果不是週五,給出提示或者執行其他操作 Toast.makeText(this, "今天不是週五,無法進行下列操作", Toast.LENGTH_SHORT).show(); } } public void 目標(View view) { Calendar calendar = Calendar.getInstance(); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); // 判斷當前系統日期是否為週一(Calendar.SUNDAY 對應值為1,Calendar.MONDAY 對應值為2) if (dayOfWeek == Calendar.SUNDAY) { String account = getIntent().getStringExtra("account"); Intent intent = new Intent(this, target.class); intent.putExtra("account", account); startActivity(intent); } else { // 如果不是週一,給出提示或者執行其他操作 Toast.makeText(this, "今天不是週一,無法進行下列操作", Toast.LENGTH_SHORT).show(); } }
週五的前四天 是週一 只有符合當前系統時間的 前四天 以及賬號匹配 才可以進行資料庫修改 對目標進行分析
public static boolean ana(User user, String account) { Connection connection = JDBCUtils.getConn(); Date currentDate = new Date(); // 獲取當前系統時間 try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.setTime(currentDate); calendar.add(Calendar.DATE, -4); // 往前推四天 Date fourDaysAgo = calendar.getTime(); String fourDaysAgoString = sdf.format(fourDaysAgo); String sql = "SELECT * FROM goal WHERE DATE(date1) = ? AND account = ?"; PreparedStatement ps = connection.prepareStatement(sql); ps.setString(1, fourDaysAgoString); ps.setString(2, account); ResultSet rs = ps.executeQuery(); if (rs.next()) { // 存在符合條件的資料 String insertSql = "INSERT INTO goal(analysis) VALUES (?)"; PreparedStatement insertPs = connection.prepareStatement(insertSql); insertPs.setString(1, user.getAnalysis()); int result = insertPs.executeUpdate(); if (result > 0) { return true; } else { return false; } } else { return false; } } catch (Exception e) { e.printStackTrace(); Log.e(TAG, "異常ana:" + e.getMessage()); return false; } }