这是为一个课程设计做的项目,各种 CRUD 操作。自己当时在学 Spring Boot 的时候网上找到的实例总是太复杂或者太简单,这个相对来讲功能多一些。
代码链接: https://github.com/Allianzcortex/code_collection/tree/master/Spring-Boot-Based-Database-TeamProject
json API
,前端由纯 HTML+CSS+Jquery
组成Spring Boot + Spring MVC + Spring Data JPA
,其中 JPA 不负责生成数据库表(auto-ddl=none
),
所有表由建表脚本构成,JPA 只起到映射作用.一些 JPA 无法完成的功能由 JDBC Template 执行查询transaction
与 items
的关系会保存在中间表 transaction_items
中Show table
:要求输入一个表的名称,返回表的所有字段并展示。实际会返回数据库里的所有表并展示在一个下拉列表里Add New Article
: 添加一个新的文章(包括 title/magazine/volume number/pages/authors
),存在一些验证需求Add new Customer
: 添加一个新的消费者(包括 lname/fname/phone number/mailing address
)。如果存在同名情况
需要确认这是否是一个新的客户Add New Transaction
: 添加一个新的交易(包括 customer ID 与 item 的 id 与 price)。其中会要求用户有一个 discount_code
(折扣码)字段。用户最终交易需要支付的价格为:Sum*(1-2.5*DC/100)
,其中 DC 计算方法为:得到过去五年内该用户的消费记录,在 0-100 之间则
DC 为 0,在 100-200 之间则为 1,依此类推对消费额大于 500 的用户折扣码为 5Cancen Transaction
: 输入 Transaction Number,如果该交易发生于一个月内则支持取消,删除所有与该次交易有关的信息(i.e. 删除 transactions 与 transaction_items 表的有关信息),并返回所有可以取消的交易新建数据库并执行 existing_tables.sql
与 new_tables.sql
文件,创建数据表
修改 application.properties
里的配置变量
a. 如果想通过源码执行,只需要导入 Intellij IDEA/Eclipse
后解析依赖并执行程序
b. 如果想通过 jar 包执行,在命令行里输入 java -Dspring.config.location=application.properties -jar Application.jar
打开 index_html
e.g. 代码里如何找到发生在 5 年内的交易:
Date today = new Date();
Calendar cal = new GregorianCalendar();
cal.setTime(today);
// get transactions nearly 5 years
cal.add(Calendar.YEAR, -5);
Date yearago5 = cal.getTime();
System.out.println(yearago5.getTime());
List<Transaction> results = transactionRepository.findByCustomerIdAndTransactionDateAfter(
customerId, yearago5);
public interface TransactionRepository extends JpaRepository<Transaction, Integer> {
List<Transaction> findByCustomerIdAndTransactionDateAfter(Integer customerId, Date thirtyDaysAgoDate);
}
部分截图:
1
qfdk 2019-04-18 14:42:56 +08:00 via iPhone
jhispter 多好 逃~
|