团队项目-第2篇Scrum冲刺博客

这个作业属于哪个课程 网工1934-软件工程
这个作业要求在哪里 团队作业4

1 站立式会议

1.1 会议照片

1.2 会议内容

昨天已完成的工作:

已明确分配的任务,并进行了环境配置,特别是mysql的配置

今天计划完成的工作

项目模块 需要实现的功能 负责人 预计用时
初始化模块 环境搭建 周凤秀、苏培霓 4h
登录模块 用户注册、登录 杨芳 7h
登录模块 数据库连接 李晓兰 4h
主界面模块 主界面设计 郭海燕 5h

工作中遇到的困难:

  1. 对于程序如何自动连接数据库不是非常清楚,就查了很多资料,也出现了很多问题,比如连接失败什么的,好在最终还是解决了。
  2. 通过配置文件db.properties连接数据库时,文件路径有误,导致无法连接,最后改了一下文件路径,顺利连接数据库。

2.项目燃尽图

3 代码/文档签入记录

4 模块的最新(运行)截图:

用户注册与登录界面:

此时尚未连接上数据库,所以点登录或者注册并不会跳转。

编写数据库连接接口:


package tallybook_system.dao;
​
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;
​
/**
 * 连接JDBC类
 */
public class JDBCUtils {
    /**
     * 加载驱动,并建立数据库连接
     *
     * @return 返回数据库链接对象
     * @throws SQLException           抛出SQLException
     * @throws ClassNotFoundException 抛出ClassNotFoundException
     * @throws IOException            抛出IOException
     */
    static Connection getConnection() throws SQLException, ClassNotFoundException, IOException {
        // 实例化Properties对象
        Properties properties = new Properties();
        // 加载properties配置文件
        properties.load(new FileInputStream(new File("src\\tallybook_system\\properties\\db.properties")));
        // 通过键名获取对应的值
        String driverName = properties.get("driverName").toString();
        String url = properties.get("url").toString();
        String user = properties.get("user").toString();
        String password = properties.get("password").toString();
        // 数据库驱动
        Class.forName(driverName);
        // 获取数据库链接对象
        Connection connection = DriverManager.getConnection(url, user, password);
        return connection;
    }
​
    /**
     * 关闭数据库连接,释放资源
     *
     * @param stmt Statement对象
     * @param conn Connection对象
     */
    static void release(Statement stmt, Connection conn) {
        if (stmt != null) {
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            stmt = null;
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            conn = null;
        }
    }
​
    /**
     * 关闭数据库连接,释放资源
     *
     * @param rs   ResultSet对象
     * @param stmt Statement对象
     * @param conn Connection对象
     */
    static void release(ResultSet rs, Statement stmt, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            rs = null;
        }
        release(stmt, conn);
    }
​
    /**
     * Java代码实现MySQL数据库导出
     *
     * @param userName     进入数据库所需要的用户名
     * @param password     进入数据库所需要的密码
     * @param savePathName 数据库导出文件保存路径加名字
     * @param databaseName 要导出的数据库名
     * @return 返回true表示导出成功,否则返回false。
     */
    public static boolean backup(String userName, String password, String savePathName, String databaseName) {
        try {
//            String stmt = "mysql -uroot -padmin myDB < " + "c:/sql.sql";
            String stmt = "mysqldump -u" + userName + " -p" + password + " " + databaseName + " > " + savePathName;
            String[] cmd = {"cmd", "/c", stmt};
            Process process = Runtime.getRuntime().exec(cmd);
            if (process.waitFor() == 0) {
                return true;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
        return false;
    }
​
    /**
     * 操作结果:恢复数据库,前提是数据库里有该数据库名字,否则无法恢复(所以应该先创建一个数据库)
     *
     * @param username     用户名
     * @param password     用户数据库密码
     * @param databasename 数据库名字
     * @param filePathName 数据库文件路径及名字加后缀
     * @return boolean 如果恢复成功则返回true,否则返回false
     */
    public static boolean recover(String username, String password, String databasename, String filePathName) {
        try {
//            String stmt = "mysql -uroot -padmin myDB < " + "c:/sql.sql";
            String stmt = "mysql -u" + username + " -p" + password + " " + databasename + " < " + filePathName;
            String[] cmd = {"cmd", "/c", stmt};
            Process process = Runtime.getRuntime().exec(cmd);
            if (process.waitFor() == 0) {
                return true;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
        return false;
    }
​
}

配置好数据库连接后:

(1)输入昵称、密码后,点击注册

(2)注册成功后,点击登录

此时在数据库中能看到存储有用户id和以哈希存储的密码

5 每人每日总结

成员 总结
郭海燕 撸起袖子继续干!
李晓兰 经过第一天的冲刺,我们完成了一小部分的功能,刚开始进度有些慢,希望后面能再接再厉。
苏培霓 都说万事开头难,任务完成起来还是遇到挺多困难。尽管有点沮丧,但好在还有队友,伸出援助之手,问题得以解决。明天继续努力!
杨芳 已学废了,初步完成了用户注册和登录功能,深刻体会到数据库连接的感人
周凤秀 搭建环境是一个项目的开端,在搭建环境的工程中对项目的整体框架有了更深的理解
posted on 2021-11-23 19:45  念倾  阅读(82)  评论(0编辑  收藏  举报