1、数据库设计
1、针对个人信息模块,要求实现的功能是登陆、密码修改、密码找回、个人信息修改等。所以产生user_info表:
id:为编号(自增),username:为用户姓名,nickname:为用户昵称,password:为登陆密码,photo:用户头像,phone:为用户电话,即登陆本系统的账号,email:为用户邮箱,在密码找回时使用。
2、对于账号管理模块,这里的账号管理与个人信息模块存在着多对一的关系,即一个用户可以有多个账户,所以account_info表的设计如下:
id:为编号(自增),uid:为用户id,即user_info表中的id,account:为账号,password:为对应的密码,type:为账号类型,有三种即支付宝,微信,银行卡,bankname:为银行卡对应的银行名称,money:为当前账号账号内余额。
3、对于个人记录模块,其与用户及账号都存在着多对一的关系,即一个用户可以有多个记录,一个账号也可以有多个记录,所以bill_info的表结构如下:
id:为编号(自增),uid:为用户编号,对应user_info表的id,aid:为账号编号,对应account_info表的id,type:为类型,有两个值供选择,即收入、支出,money:为对应的金额,source:为收入来源,spendtype:为消费类型,remarks:为备注,curdate:为当前日期。
2、项目创建--STS开发工具
1、修改pom.xml文件,添加依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.21.RELEASE</version> </parent> <groupId>com.ly</groupId> <artifactId>springboot</artifactId> <version>0.0.1-SNAPSHOT</version> <name>Ebill</name> <properties> <java.version>1.8</java.version> <thymeleaf-layout-dialect.version>2.0.4</thymeleaf-layout-dialect.version> <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <!-- mybatis启动器 --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.1</version> </dependency> <!-- mysql数据库启动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!-- druid数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.9</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.20</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-access</artifactId> <version>1.1.3</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.3</version> </dependency> <!--集成redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.4.1.RELEASE</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>2、在src/main/resources文件夹下新建application.properties
spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/ebill?characterEncoding=UTF-8 spring.datasource.username=root spring.datasource.password=root spring.datasource.type=com.alibaba.druid.pool.DruidDataSource mybatis.type-aliases-package=com.ly.entity spring.mvc.view.suffix=.html spring.jpa.show-sql=true3、创建实体类
1、AccountInfo实体类
package com.ly.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * account_info对应实体类 * * @author ly * @since 2020-07-02 * @version 1.0 * */ @Data @AllArgsConstructor @NoArgsConstructor public class AccountInfo { private Integer id; // 编号 private Integer uid; // 用户编号 private String account; // 账号 private String password; // 密码 private String type; // 类型 private String bankname; // 银行名称 private String money; // 当前余额 }2、UserInfo实体类
package com.ly.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * user_info 对应实体类 * * @author ly * @since 2020-07-02 * @version 1.0 * */ @Data @AllArgsConstructor @NoArgsConstructor public class UserInfo { private Integer id;// 编号 private String username; // 姓名 private String nickname; // 昵称 private String password; // 登陆密码 private String photo; // 头像 private String phone; // 电话 private String email; // 邮箱 }3、BillInfo实体类
package com.ly.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * bill_info对应实体类 * * @author ly * @since 2020-07-02 * @version 1.0 * */ @Data @AllArgsConstructor @NoArgsConstructor public class BillInfo { private Integer id; // 编号 private Integer uid; // 用户编号 private Integer aid; // 账号编号 private String type; // 类型 private String money; // 金额 private String source; // 来源 private String spendtype; // 花费方式 private String remarks; // 备注 private String curdate; // 当前日期 }
