1、IDEA2020.1
2、mysql-8.0.26-winx64
3、apache-maven-3.6.0
4、JDK 1.8 (8.0)
注意:
1、导入项目后需要等待完全更新完毕,右下角有进度条 首先设置JDK版本
file->project structure 因为低版本的IDA不支持太新的JDK会报错
2、同步数据库版本 pom.xml 中配置
其中 version为高版本 使用maven更新下载
mysql mysql-connector-java runtime 8.0.16
3、application.properties配置,
数据库连接驱动名,
mysql8需要使用com.mysql.cj.jdbc.Driver,之前低版本使用com.mysql.jdbc.Driver
注意:只有先在pom.xml配置了mysql的版本号且maven成功才能使用 【com.mysql.cj.jdbc.Driver】
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
数据库具体属性 ip 端口 数据库名(此处定义了项目使用的数据库名,之后代码中可以直接使用其表)
账号 密码
spring.datasource.url=jdbc:mysql://localhost:3306/account spring.datasource.username=root spring.datasource.password=root
4、更新数据库时区 登入mysql 直接操作 注意标点不是单引号
mysql -hlocalhost -uroot -p
show variables like'%time_zone';
set global time_zone = '+8:00';
或者 配置MySQL目录下的my.ini文件
[mysqld]
…
…
#设置默认时区
default-time-zone=’+08:00’
[mysqld]
然后在数据库连接url后加上属性serverTimezone
url=jdbc:mysql://localhost:3306/db?serverTimezone=GMT
若不用navicat 也可以在idea中查看数据库 操作数据库
新建一个 版本要足够新,配置账号密码 测试连接即可有界面。
错误举例:
1、Failed to start end point associated with ProtocolHandler [http-nio-8080]
端口被占用 COM运行
netstat -ano|findstr 8080
taskkill /f /pid 12396
2、Unable to create initial connections of pool
可能是时区错误,需要设置时区
四处分别是GET GET PUT POST
GET 查全库
GET 查ID
PUT 改
POST 增
DAO层、ENTITY层、SERVICE层、CONTROLLER层
1、DAO层: 持久层 主要与数据库进行交互 SQL语句的映射
DAO层主要是做数据持久层的工作,主要与数据库进行交互。
DAO层首先会创建DAO接口,接着就可以在模块中就可以调用DAO 的接口进行数据业务的而处理,并且不用关注此接口的具体实现类是哪一个类。DAO 层的数据源和数据库连接的参数都是在配置文件中进行配置的。
2、Entity层: 实体层 数据库在项目中的类 即把表实体化为类
3、Service层:业务层 实现控制业务
Service层主要负责业务模块的逻辑应用设计。和DAO层一样都是先设计放接口的类,再创建实现的类,然后在配置文件中进行配置其实现的关联。接下来就可以在service层调用接口进行业务逻辑应用的处理。
封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。
4、Controller层: 控制层 实现控制业务逻辑
Controller层负责具体的业务模块流程的控制,其实就是与前台互交,把前台传进来的参数进行处理,Controller层主要调用Service层里面的接口控制具体的业务流程,控制的配置也需要在配置文件中进行。
5、View层: 此层与控制层结合比较紧密,需要二者结合起来协同工发。View层主要负责前台jsp页面的表示,
Conroller层和Service层的区别是:Controlle层负责具体的业务模块流程的控制;Service层负责业务模块的逻辑应用设计;
总结:在具体的项目中,其流程为:Controller层调用Service层的方法,Service层调用Dao层中的方法,其中调用的参数是使用Entity层进行传递的。总的来说这样每层做什么的分类只是为了使业务逻辑更加清晰,写代码更加方便,所以有时候也需要根据具体情况来,但是大体的都是这样处理的,因为它其实就是提供一种规则,让你把相同类型的代码放在一起,这样就形成了层次,从而达到分层解耦、复用、便于测试和维护的目的。



