一、创建一个 Spring Initializr 工程
next后选择2.7.8版本,勾选以下几个
- Web里的spring boot
- Template Engines 里的 Thymeleaf
- SQL里的MyBatis Framework 和 Mysql Driver
然后finish完成
二、配置resources文件
2.1、 application.properties:
#??????
spring.datasource.name=exam
#??????
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.url=jdbc:mysql://192.168.91.130:3306/exam
mybatis.mapper-locations=classpath:/mappers/*.xml
2.2、创建mappers目录,映射dao层接口 (这个步骤要放在dao层对象接口完成后)
三、创建controller,dao,pojo,service文件夹
3.1、SpringbootstuApplication
注意:SpringbootstuApplication.java要和上面几个文件夹在一个目录上,不然运行会报错
SpringbootstuApplication.java 代码:
3.2、pojo层:根据数据库内表的名称以及表的内容 创建pojo目录class文件
图:数据库student表
图:pojo层student 对象 (无参,有参构造,get,set方法,tostring 需要添加)
3.3、创建dao层,实现客户需要(增删改查)
3.4、service层调用dao层,实现业务逻辑
先简单来讲下Dao层,和Service层的概念:
Service是业务层,Dao是数据访问层,这样的分层是基于MVC架构来说的。
Dao层:全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表、某个实体的增删改查
Service层:被称为服务,肯定是相比之下比较高层次的一层结构,相当于将几种操作封装起来。
具体起来,Dao的作用是封装对数据库的访问:增删改查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求;
而Service,则是专注业务逻辑,对于其中需要的数据库操作,都通过Dao去实现。简单来说就是Dao层是底层,具体到某一张表的增删查改,可以理解为有多少张表就有多少个Dao层,而Service成可以理解为是Dao层的 “上司”,通过Service层来控制Dao层。
一个Service层控制一个或者多个Dao层。
通过Service层去调用Dao层,不仅可以解耦合,而且可以增加代码的拓展性。
图:service层接口方法(来自于dao层)
图:通过new dao层接口,创建对象,来实现接管dao层
@Autowired可以标注在属性上、方法上和构造器上,来完成自动装配
它可以标注在属性上、方法上和构造器上,那有什么区别吗?简单来说因为类成员的初始化顺序不同,静态成员 ——> 变量初始化为默认值——>构造器——>为变量赋值。如果标注在属性上,则在构造器中就不能使用这个属性(对象)的属性和方法。
当标注的属性是接口时,其实注入的是这个接口的实现类, 如果这个接口有多个实现类,只使用@Autowired就会报错,因为它默认是根据类型找,然后就会找到多个实现类bean,所有就不知道要注入哪个。然后它就会根据属性名去找。所以如果有多个实现类可以配合@Qualifier(value=“类名”)来使用
3.5、controller控制层,通过new Service层接口对象,调用方法,实现web界面增删改查
RequestMapping注解有六个属性,下面我们把她分成三类进行说明。
1、 value, method;
value: 指定请求的实际地址,指定的地址可以是URI Template 模式;
method: 指定请求的method类型, GET、POST、PUT、DELETE等;
2、 consumes,produces;
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
3、 params,headers;
params: 指定request中必须包含某些参数值是,才让该方法处理。
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。
@ResponseBody//将方法返回的对象转换成JSON字符串
六、使用SpringbootstuApplication运行
//http://localhost:8080/exam/allstu
//http://localhost:8080/exam/loadcla
// http://localhost:8080/exam/addstu?name=zhh&age=21&gender=1&telephone=12345532222&email=zhh@qq.com&classid=1