目录
1.spring boot 创建包,和相关作用
上篇文章教大家
如何配置了spring boot项目,当然创建好了项目肯定还不行,还要创建一些包
这些是需要用到的包
Dao : sql操作接口,用于写数据库方法,也可以写一些简单的sql语句,语句较多的sql语句都会写到resources--->mapper里面
model:数据模型,用于展示数据库的参数,使用参数必须与数据库参数名一致
service:Service层叫服务层,被称为服务,可以理解就是对一个或多个DAO进行的再次封装,封装成一个服务
web:控制器,这是后端专于服务前端的,调用service中的方法,利用写入接口的方式给前端调用访问
application.yml:这里是数据库的相关配置
好了,接下来让我们来写第一个项目吧,相信大家在登录一款网页或者软件的时候刚进入点击的时候就会被提示,“请先登录” 是吧,
是不是都有体会,那好,现在我们来写登录,让你们可以知道设计软件的登录是多么的简单,(先不设计跨域设置,后续会写)
2.登录
(1)参数类
在model中创建一个User根据你数据库中的数据名来写
package com.example.testClass.model;
public class User {
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
private String username;
private String password;
}
写入getter和Setter方法
2.然后我们再写一个实体类,在model包里创建ResponseData
/**
* 用于客户端的实体类
*/
@Data
public class ResponseData<T> {
private Boolean success;//表示业务层
private String msg;//提示信息
private Integer code;//状态码
private T data;//返回的数据,如果没有要返回的数据,那么以空字符返回
private long time;//访问接口的时间
public ResponseData(Integer code,Boolean success, String msg, T data) {
this.code=code;
this.success = success;
this.msg = msg;
this.time = new Date().getTime();
if (data == null) {
this.data = (T) new String("");
} else {
this.data = data;
}
}
public static <V> ResponseData success() {
return new ResponseData(200,true, null, null);
}
public static <V> ResponseData error(Integer code,String msg,V data) {
return new ResponseData(code,false, msg, data);
}
public static <V> ResponseData success(V data) {
return new ResponseData(200,true, "操作成功", data);
}
public static ResponseData error(String msg) {
return new ResponseData(200,false, msg, null);
}
(2)dao层
/**
*
* @Repository 用于声明 dao 层的 bean
* sql操作接口,用于写数据库的调用方法
*/
@Repository
public interface Dao {
/**
*账号密码登录
* @Param @Param的作用就是给参数命名,比如在mapper里面某方法A(int id),当添加注解后A(@Param("userId") int id),也就是说外部想要取出传入的id值,只需要取它的参数名userId就可以了。将参数值传如SQL语句中,通过#{userId}进行取值给SQL的参数赋值。
* @param username 账号
* @param password 密码
* @return
*/
@Select("select count(1) from admin where username=#{username} and password=#{password}")//sql语句
Integer login(@Param("username") String username, @Param("password") String password);//Integer默认返回的类型是null
}
(3)service
先写接口
boolean login(String username, String password) ;//这里我们返回值用Boolean
然后就到了我们的service
@Service
public class TestService implements ITestService {
@Autowired
private Dao dao;//需要调用
@Override
public boolean login(String username, String password) {
boolean result =true; //默认登录成功
if (dao.login(username, password) != 1) {//如果账号密码不对,就返回失败
result=false;
}
return result;
}
}
(4)控制器
@RestController
@RequestMapping(value = "/back")
public class TestController {
@Autowired
private TestService testService;
@PostMapping("/login")//登录接口
public ResponseData login(String username, String password) {
/**
* 先申明我们刚创建的实体类
*/
ResponseData responseData = null;
//判断账户名和密码是否正确
if (testService.login(username, password)) {//如果登陆成功
// 如果账号密码正确
responseData = ResponseData.success("登录成功");
} else {
responseData = ResponseData.error("密码密码错误");
}
return responseData;
}
}
(5)测试
好了,写下来我们来测试
推荐大家使用postman,测试体验感还行
先在数据库找到一个正确的账户名密码
我们的接口名http://localhost:8091/back/login
先来一个错误的测试一下
再来正确的
好了,这样我们的登录就完成了