angular + spring boot + mysql
花了两周的时间,我终于做完实训了。
这次用的全是新学的技术,前端框架是angular,组件库是ngzorro的,后端是spring boot,数据库是mysql。这次被逼着学习新东西,总算是凑凑合合把这些技术学会了。
先说前端的angular框架,现在我学会了基本的建component,设置路由和其他一些框架的特效,如果以后要用却忘记了,可以去angular官网看英雄教程。
再看后端,spring的框架在今年暑假的时候我就被要求学,可是我初看一头雾水,又没有实际使用的需求,我就一直拖着没学。这次总算学习了一波。
为了让后端能够与数据库连接,先配置resources文件夹中的application.properties文件,如下:
server.port=8080
# Hibernate 相关配置
## 方言
#hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
## 显示Sql
hibernate.show_sql=true
## 自动建表方式
hibernate.hbm2ddl.auto= update
## 数据库连接
spring.datasource.url=jdbc:mysql://localhost:3306/web
## 用户名
spring.datasource.username=root
## 密码
spring.datasource.password=123456
## 数据库驱动
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
## 建表方式
spring.jpa.properties.hibernate.hbm2ddl.auto=update
# 方言
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
该配置以用户名为root,密码为123455区连接localhost:3306的mysql数据库中的web库。
一般来说后端是用来作为前端与数据库的桥梁的。操作一个数据模型,在后端包含三个部分:
- 模型类:模型类定义的成员变量需要和数据库一模一样,并且包含各个变量的get和set方法。
- 控制类(controller):控制类用于给前端提供操作接口,以及做基本的逻辑操作。给前端提供的操作接口,例如:
@RequestMapping("/update") public CustomResponse updateUserById(@RequestParam User u) { User user = u; userRepository.save(user); return new CustomResponse("更新成功"); }
需要注意的是,在前后端通信中,定义了一个CustomResponse封装数据。
- 直接操作数据库类(Repository):夹在数据库与控制类之间,为控制类提供操作数据库的方法。
基本上就是这些内容了,但是在实际开发的时候还是遇到很多坑,问题参考的如下:
后端部分:
- 如何在IDEA中自动生成getter和setter方法:右键->点击Generate->点击getter and setter->全选->点击OK。
- 在IDEA工程目录中无法找到新建Java文件的选项该如何解决:参考链接。
- spring boot操作mysql数据库:参考链接。
- @Param注解的用法:参考链接。
- 浏览器控制台报无法跨域问题的解决办法:参考链接。
- 如何取消在IDEA中出现相似代码时的黄线提示:参考链接。
- 报No identifier specified for entity错的原因:参考链接。出现这个报错其实是模型类中的变量里没有声明唯一的主键。
- 其他注解的用法:参考链接。
- @transactional无效的问题:参考链接。
- 包含各种jar文件的lib文件夹应放置在Web-INF目录下。