总结:
controller展示 定义接口路径和调用service
service 处理业务逻辑 数据库数据
mapper定义操作数据库动作,命名
mapper.xml执行mapper里定义的动作的sql语句,与数据库交互
entity 定义类,与数据库类型保持一致
https://www.bilibili.com/video/BV16541147s1?from=search&seid=14149306823192602727&spm_id_from=333.337.0.0第一步 new project
修改名字
安装相关依赖(装少了的话后期可以自己加,不过比较麻烦)
首先勾上这个工具,方便以后用
web
用上数据库,勾上框的那三个
命名
第一次下载会有点慢(防火墙可能会阻止,需要允许访问)
(嫌弃慢的话搜索配一下阿里云的镜像,确实等了很久)
进来配置数据库信息
yml配置
下面用户名密码数据库端口按照自己实际情况来(随便写的)
spring:
datasource:
url: jdbc:mysql://localhost:3306/test1?characterEncoding=utf-8&serverTimezone=GMT%2B8
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
mapper-locations: classpath:mapper/*Mapper.xml
type-aliases-package: com.test.elasticsearchdemo.domain
再次运行,分配端口
访问空白(因为啥也没写)
建立controller包,建立类,返回一些数据(当然,现在是静态的)
模拟返回json格式,建立Animal类,右键——生成——构造函数/get set
设置返回这个json对象 return new Animal("dog",5);
成功返回
前端测试接口,因为端口的不同还是出现了跨域问题
通过@CrossOrigin解决,因为方便,但是不是很好,还是单独配置一下过滤器比较好
下面当然是需要用到数据库的调用,真正实战都是调用数据库的嘛
首先建立实体类(跟数据库保持一致)
entity
package com.test.demo.entity;
public class User {
private int id;
private String name;
private String password;
public User(int id, String name, String password) {
this.id = id;
this.name = name;
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
mapper 操作数据库动作
package com.test.demo.mapper;
import com.test.demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface UserMapper {
// 定义操作数据库为查找所有用户
List<User> findAll();
}
定义查找所有的数据
建立mapper.xml(sql语句)
在resource文件下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace对应哪个mapper文件 -->
<mapper namespace="com.test.demo.mapper.UserMapper">
<!-- id对应mapper里面的方法名 resultType对应实体类的数据库类-->
<select id="findAll" resultType="com.test.demo.entity.User">
select * from user;
</select>
</mapper>
service操作导出数据库数据
package com.test.demo.service;
import com.test.demo.entity.User;
import com.test.demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> findAll(){
return userMapper.findAll();
}
}
mapper里面加注解@mapper
最后controller里面设置接口
package com.test.demo.controller;
import com.test.demo.entity.User;
import com.test.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class userController {
@Autowired
private UserService userService;
@CrossOrigin
@RequestMapping("/abc")
public Animal getName(){
return new Animal("hml",5);
}
@CrossOrigin
@RequestMapping("/abcd")
public List<User> getUser(){
return userService.findAll();
}
}
效果:
开启谷歌插件json格式化
效果有:
前后端分离测试调用成功