新建项目
这样子就新建成了一个spring boot 的项目了
接着,我们需要配置数据库,不然运行的时候会报错,在application.yml中配置,我这边把后缀改为yml
简单的配置
# 端口号
server:
port: 8807
spring:
#通用的数据源配置
# list_practice 是数据库名
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/list_practice?useUnicode=true&characterEncoding=utf-8&userSSL=true&serverTimezone=UTC
username: root
password:
jpa:
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
# 配置在日志中打印出执行的SQL语句
show-sql: true
hibernate:
新建一个实体类,作为数据库某个表中的键值一一对应
package com.list.demo.login;
import javax.persistence.Entity;
import javax.persistence.Id;
// Entity表示是一个实体
@Entity
public class Login {
@Id
private int id;
private String name;
private String password;
// 构造函数
public Login(int id, String name, String password) {
this.id = id;
this.name = name;
this.password = password;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setPassword(String password) {
this.password = password;
}
public Login() {
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getPassword() {
return password;
}
}
新建一个接口
package com.list.demo.SQL;
import com.list.demo.login.Login;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
// 继承 JpaRepository 泛型
public interface LoginRepository extends JpaRepository<Login,Integer> {
// 这个使用sql语句的,这里是没必要写的,因为springboot有这个的框架,自动生成的
@Query(value = "select * from login",nativeQuery = true)
List<Login> getLoginAll();
@Query(value = "select * from login where login.name = :name and login.password = :password",nativeQuery = true)
List<Login> getLogin(@Param("name") String name,
@Param("password") String password);
}
新建一个controller
@RequestMapping 是接口的地址,method 是请求方法
package com.list.demo.controller;
import com.list.demo.Result.ResultUtil;
import com.list.demo.SQL.LoginRepository;
import com.list.demo.login.Login;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.xml.ws.Response;
import java.util.List;
@RestController
// 这个是局部跨域的
@CrossOrigin(origins = "*")
public class LoginController {
@Resource
private LoginRepository loginRepository;
// 使用sql语句
@RequestMapping(value = "/v1/selectLogin",method = RequestMethod.GET)
public Object getLogins(){
List<Login> logins = loginRepository.getLoginAll();
return ResultUtil.success(logins);
}
// 不使用,findAll就是查询所有的数据
@RequestMapping(value = "/v1/new/selectLogin",method = RequestMethod.GET)
public Object getNew_Logins(){
List<Login> logins = loginRepository.findAll();
return ResultUtil.success(logins);
}
// 用户登录
@RequestMapping(value = "/v1/login",method = RequestMethod.POST)
public Object getLogin(@RequestParam("name") String name,
@RequestParam("password") String password){
List<Login> logins =loginRepository.getLogin(name,password);
return ResultUtil.success(logins);
}
}
封装一个返回的数据处理
package com.list.demo.Result;
public class Result<T> {
private Integer code;
private String msg;
private T data;
public Result() {
super();
}
public Result(Integer code, String msg, T data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
// 具体数据还要根据你自己的想法去处理
@Override
public String toString() {
return "data{" +
"code=" + code +
", msg='" + msg + '\'' +
", data=" + data +
'}';
}
}
// 枚举
package com.list.demo.Result;
public enum ResultEnum {
SUCCESS(10000,"成功"),
ERROR(404,"失败");
private Integer code;
private String msg;
ResultEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public Integer getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
package com.list.demo.Result;
public class ResultUtil {
/**成功且带数据**/
public static Result success(Object object){
Result result = new Result();
result.setCode(ResultEnum.SUCCESS.getCode());
result.setMsg(ResultEnum.SUCCESS.getMsg());
result.setData(object);
return result;
}
/**成功但不带数据**/
public static Result success(){
return success(null);
}
/**失败**/
public static Result error(Integer code,String msg){
Result result = new Result();
result.setCode(code);
result.setMsg(msg);
return result;
}
}