第四周总结
本周工作内容
Android直接连接MySQL数据库
通过本地导入mysql-connector-java-5.1.47.jar实现JDBC连接
创建JDBCHelper工具类管理数据库连接
实现课程信息添加功能(包含数据校验和异常处理)
添加网络权限
地铁票价计算系统开发
完成地铁线路数据建模(3条线路,60+站点)
实现票价计算核心算法(含换乘逻辑)
开发完整的购票流程界面
修复站点判断逻辑错误导致的计费问题
学到的知识
Android数据库连接
JDBC在Android中的基本使用方法
本地jar包的导入和配置
数据库操作的最佳实践(子线程执行、UI线程更新)
使用runOnUiThread进行线程间通信
复杂业务逻辑实现
地铁线路的图结构建模
最短路径算法实现(含换乘计算)
票价分段计算规则(每3站1元)
异常输入处理(相同站点、无效票数)
Android UI开发
Spinner下拉选择器的使用
表单数据验证
多控件联动逻辑
状态按钮控制(计算完成前禁用购买)
遇到的问题及解决方法
问题:JDBC连接失败
原因:Android模拟器访问本地数据库需使用特殊IP(10.0.2.2)
解决:修改连接URL为jdbc:mysql://10.0.2.2:3306/dbname
问题:票价计算结果错误
原因:换乘站点判断逻辑遗漏了二次换乘情况
解决:重构calculateStationCount方法,增加多线路换乘判断
问题:UI卡顿
原因:数据库操作在主线程执行
解决:使用new Thread()处理耗时操作
代码统计
数据库连接项目
Java代码:85行(含JDBC工具类和业务逻辑)
XML布局:45行
耗时:6小时(含环境配置调试)
地铁票价项目
模型类:60行(Station/Line)
业务逻辑:220行(含核心算法)
界面代码:90行XML+60行Java
总代码量:430行
耗时:12小时(含测试调试)
经验总结
架构设计方面
直接数据库连接仅适合学习使用,生产环境应使用API
复杂业务逻辑应先设计算法流程图
模型类要准确反映业务实体关系
编码实践方面
多线程处理必须配合UI线程回调
核心算法需要单元测试验证
用户输入必须严格校验
项目经验
通过地铁项目掌握了复杂状态管理
认识到算法设计对业务实现的关键作用
体会到调试复杂逻辑的系统性方法
后续计划
学习Room等Android本地数据库方案
研究Dijkstra等图算法优化路径计算
尝试将地铁项目改为MVVM架构
学习性能优化和内存管理技巧

浙公网安备 33010602011771号