本博客主要记录实训项目中开发过程,想了解idea如何连接mysql可以只看内容一,内容二为数据库设计和sql代码
目录
一、idea连接数据库
2.1 mysql创建数据表
打开cmd,输入以下代码进入mysql,这里的username替换成你的MySQL用户名
mysql -u username -p
输入密码,进入mysql,显示以下进入成功
输入以下代码,查看自己当前已有数据库
show databases;
这里我们输入以下代码新建一个数据库,bankdb是数据库名
create database bankdb;
再输入show databases; 可以发现我们已经创建成功
2.2 idea连接MySQL数据库
先在pom.xml中添加mysql依赖,可以在这个网站上找,Maven Repository: Search/Browse/Explore (mvnrepository.com)
根据mysql的版本,可能支持的依赖项的版本也不同
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.4.0</version>
</dependency>
右边点开maven刷新一下,加载一下依赖项
之后在如下位置进行设置application.yml,可能一开始是application.properties,2者都行,就是格式不一样,这里只展示.yml的
添加代码如下,jdbc:mysql://localhost:3306/bankdb 这里的bankdb就是你要连接的数据库名,username填写你的数据库用户名,password填写密码
之后我们手动连接一下数据库,在右边找到数据库选项,点开,点击这个+号新建,找到mysql选项
填写数据库名字bankdb,并且输入用户名和密码,填完之后点击下面的测试连接,显示成功即可
点击应用,点击确定,就能连上了,后面不需要再连接了,每次重开项目的时候记得先启动一下数据库。
二、数据库设计
直接从文档复制过来的,具体细节以后再补
1.1 用户个人信息表user
编号 | 名称 | 说明 | 数据类型 | 允许空值 | 默认值 | 主键 |
1 | id | 用户唯一编号 | int | N | Y | |
2 | realName | 真实姓名 | varchar(50) | N | N | |
3 | birthday | 出生日期 | varchar(10) | N | N | |
4 | sex | 性别 0女 1男 | int | N | N | |
5 | cardId | 身份证号 | varchar(18) | N | N | |
6 | address | 地址 | varchar(100) | N | N | |
7 | phone | 联系电话 | varchar(20) | N | N | |
8 | | 邮箱 | varchar(50) | N | N | |
9 | password | 登录密码 | varchar(50) | N | N | |
10 | creditScore | 信用评分 | decimal(3,2) | N | N | |
11 | userType | 用户类型 1用户 2银行员工 3管理员 | int | N | N | |
12 | photo | 用户头像 | varchar(100) | Y | N |
-- 创建用户表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户唯一id',
realName VARCHAR(50) NOT NULL DEFAULT '' COMMENT '真实姓名',
birthday VARCHAR(10) NOT NULL DEFAULT '' COMMENT '出生日期',
sex INT NOT NULL DEFAULT 0 COMMENT '性别',
cardId VARCHAR(18) NOT NULL DEFAULT '' COMMENT '身份证号',
address VARCHAR(100) NOT NULL DEFAULT '' COMMENT '地址',
phone VARCHAR(20) NOT NULL DEFAULT '' COMMENT '联系电话',
mail VARCHAR(50) NOT NULL DEFAULT '' COMMENT '邮箱',
password VARCHAR(50) NOT NULL DEFAULT '' COMMENT '登录密码',
creditScore DECIMAL(3, 2) NOT NULL DEFAULT 0.00 COMMENT '信用评分',
userType INT NOT NULL DEFAULT 1 COMMENT '用户类型',
photo VARCHAR(100) DEFAULT NULL COMMENT '用户头像'
);
1.2 银行卡表cards
编号 | 名称 | 说明 | 数据类型 | 允许空值 | 默认值 | 主键 |
1 | id | 编号 | int | N | Y | |
2 | idNumber | 卡号 | varchar(20) | N | N | |
3 | cardType | 银行卡类型 1借记卡 2信用卡 | int | N | N | |
3 | password | 密码 | varchar(50) | N | N | |
4 | balance | 余额 | decimal(12,4) | N | N | |
5 | statusId | 状态编号 0冻结 1正常 | int | N | N | |
6 | userId | 所属用户编号 (绑定用户) | int | N | N | |
7 | beginDate | 开户日期 YYYY-MM-DD HH:MM:SS | timestamp | N | N | |
8 | repaid | 信用卡待还款 | decimal(12,2) | N | 0 | N |
9 | total | 信用卡额度 | decimal(12,2) | Y | N | |
10 | rate | 日利率 | decimal(12,4) | N | 0.0005 | N |
11 | repayDate | 还款日期 | decimal(12,4) | N | N |
-- 创建银行卡表
CREATE TABLE cards (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '编号唯一自增',
idNumber VARCHAR(20) NOT NULL COMMENT '卡号唯一',
cardType INT NOT NULL COMMENT '银行卡类型',
password VARCHAR(50) NOT NULL COMMENT '密码',
balance DECIMAL(12, 4) NOT NULL COMMENT '余额',
statusId INT NOT NULL COMMENT '状态编号',
userId INT NOT NULL COMMENT '所属用户',
beginDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '开户日期',
repaid DECIMAL(12, 2) NOT NULL DEFAULT 0 COMMENT '信用卡待还款',
total DECIMAL(12, 2) DEFAULT NULL COMMENT '信用卡额度',
rate DECIMAL(12, 4) NOT NULL DEFAULT 0.0005 COMMENT '日利率',
repayDate date DEFAULT NULL COMMENT '还款日期'
);
1.3 用户-银行卡表users_cards
编号 | 名称 | 说明 | 数据类型 | 允许空值 | 默认值 | 主键 |
1 | id | 编号 | int | N | Y | |
2 | userId | 所属用户 | int | N | N | |
3 | cardId | 所属银行卡 | int | N | N |
-- 创建用户-银行卡关联表
CREATE TABLE users_cards (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '编号,自增主键',
userId INT NOT NULL COMMENT '所属用户',
cardId INT NOT NULL COMMENT '所属银行卡'
);
1.4 支付表payment
支付类型可以新开一个表,这里用来记录流水和交易记录
编号 | 名称 | 说明 | 数据类型 | 允许空值 | 默认值 | 主键 |
1 | id | 编号 | int | N | Y | |
2 | idNumber | 流水号 | varchar(20) | N | N | |
3 | cardId | 银行卡号 | varchar(20) | N | N | |
3 | payDate | 支付日时间 YYYY-MM-DD HH:MM:SS | timestamp | N | N | |
4 | money | 支付金额 | decimal(12,2) | N | N | |
5 | inOut | 转入转出 0转入 1转出 | int | N | N | |
6 | payType | 支付类型 1转账 2网银在线 3支付宝 4微信 | int | N | N | |
7 | recardId | 接收方账户 | varchar(20) | N | N | |
8 | userId | 所属用户编号 | int | N | N |
-- 支付表
CREATE TABLE payment (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '编号',
idNumber VARCHAR(20) NOT NULL DEFAULT '' COMMENT '流水号',
cardId VARCHAR(20) NOT NULL DEFAULT '' COMMENT '银行卡号',
payDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '支付时间',
money DECIMAL(12,2) NOT NULL DEFAULT 0.00 COMMENT '支付金额',
transType INT NOT NULL COMMENT '转入转出',
payType INT NOT NULL COMMENT '支付类型',
recardId VARCHAR(20) DEFAULT NULL COMMENT '接收方账户',
userId INT DEFAULT NULL COMMENT '所属用户'
);
1.5 公司表company
(生活缴费),公司类型可以新开一个字典
编号 | 名称 | 说明 | 数据类型 | 允许空值 | 默认值 | 主键 |
1 | id | 编号 | int | N | Y | |
2 | companyName | 公司名称 | varchar(50) | N | N | |
3 | city | 所在城市 | varchar(20) | N | N | |
4 | companyType | 公司类型 1水费公司 2燃气费公司 3电费公司 4通信公司 | int | N | N | |
5 | companyCount | 公司账户 | varchar(20) | N | N |
-- 公司表
CREATE TABLE company (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '编号',
companyName VARCHAR(50) NOT NULL DEFAULT '' COMMENT '公司名称',
city VARCHAR(20) NOT NULL DEFAULT '' COMMENT '所在城市',
companyType INT NOT NULL COMMENT '公司类型',
companyCount VARCHAR(20) NOT NULL COMMENT '公司账户'
);
1.6 理财产品表financial_product
编号 | 名称 | 说明 | 数据类型 | 允许空值 | 默认值 | 主键 |
1 | id | 编号 | int | N | Y | |
2 | productName | 产品名称 | varchar(50) | N | N | |
3 | buyBeginDate | 购买起始日期 | timestamp | N | N | |
4 | buyEndDate | 购买终止日期 | timestamp | N | N | |
5 | beginDate | 产品起始日期 | timestamp | N | N | |
6 | endDate | 产品终止日期 | timestamp | N | N | |
7 | incomeType | 收益类型 | int | N | N | |
8 | beginMoney | 起购金额 | int | N | N | |
9 | costStatus | 销售状态 1已售 2可售 3未售 | int | N | N | |
10 | currencyType | 币种 1人民币 2美元 3港币 4欧元 | int | N | N | |
11 | ocType | 开封闭类型 1封闭 2开放 | int | N | N | |
12 | riskType | 风险等级 1低 2中 3高 | int | N | N | |
13 | institution | 发行机构 | varchar(50) | N | N | |
14 | lowRate | 最低年利率 | decimal(12,4) | N | N | |
15 | highRate | 最高年利率 | decimal(12,4) | N | N |
-- 理财产品表
CREATE TABLE financial_product (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '编号',
productName VARCHAR(50) NOT NULL DEFAULT '' COMMENT '产品名称',
buyBeginDate date NOT NULL COMMENT '购买起始日期',
buyEndDate date NOT NULL COMMENT '购买终止日期',
beginDate date NOT NULL COMMENT '产品起始日期',
endDate date NOT NULL COMMENT '产品终止日期',
incomeType INT NOT NULL COMMENT '收益类型',
beginMoney INT NOT NULL COMMENT '起购金额',
costStatus INT NOT NULL COMMENT '销售状态',
currencyType INT NOT NULL COMMENT '币种',
ocType INT NOT NULL COMMENT '开封闭类型',
riskType INT NOT NULL COMMENT '风险等级',
institution VARCHAR(50) NOT NULL COMMENT '发行机构',
lowRate DECIMAL(12,4) NOT NULL COMMENT '最低年利率',
highRate DECIMAL(12,4) NOT NULL COMMENT '最高年利率'
);
1.7 理财产品-用户表financial_user
编号 | 名称 | 说明 | 数据类型 | 允许空值 | 默认值 | 主键 |
1 | id | 编号 | int | N | Y | |
2 | belongUser | 所属用户 | int | N | N | |
3 | blongProduct | 所属产品 | int | N | N | |
4 | balance | 产品余额 | decimal(12,4) | NN | N |
-- 理财产品-用户表
CREATE TABLE financial_user (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '编号',
belongUser INT NOT NULL COMMENT '所属用户',
belongProduct INT NOT NULL COMMENT '所属产品',
balance DECIMAL(12,4) NOT NULL DEFAULT 0 COMMENT '产品余额'
);
1.8 贷款项目表loan_product
编号 | 名称 | 说明 | 数据类型 | 允许空值 | 默认值 | 主键 |
1 | id | 编号 | int | N | Y | |
2 | productName | 产品名称 | varchar(50) | N | N | |
3 | beginDate | 贷款起始日期 | timestamp | N | N | |
4 | timeContniue | 贷款期限(月数) | int | N | N | |
5 | incomeType | 贷款类型 1等额本金 2等额本息 | int | N | N | |
6 | beginMoney | 贷款金额 | decimal(12,4) | N | N | |
8 | interest | 利息 | decimal(12,4) | N | N |
-- 贷款项目表
CREATE TABLE loan_product (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '编号',
productName VARCHAR(50) NOT NULL COMMENT '产品名称',
beginDate TIMESTAMP NOT NULL COMMENT '贷款起始日期',
timeContinue INT NOT NULL COMMENT '贷款期限(月数)',
incomeType INT NOT NULL COMMENT '贷款类型 ',
beginMoney DECIMAL(12,4) NOT NULL COMMENT '贷款金额',
interest DECIMAL(12,4) NOT NULL COMMENT '利息'
);
1.9 贷款-用户表loan_user
编号 | 名称 | 说明 | 数据类型 | 允许空值 | 默认值 | 主键 |
1 | id | 编号 | int | N | Y | |
2 | userId | 所属用户 | int | N | N | |
3 | productId | 所属贷款 | int | N | N | |
4 | balance | 贷款余额 | decimal(12,4) | N | N | |
7 | productStatus | 贷款状态 1未通过 2通过 3已结束 | int | N | N |
-- 贷款-用户表
CREATE TABLE loan_user (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '编号',
userId INT NOT NULL COMMENT '所属用户',
productId INT NOT NULL COMMENT '所属贷款',
balance DECIMAL(12,4) NOT NULL COMMENT '贷款余额',
productStatus INT NOT NULL COMMENT '贷款状态'
);