找到l文件,在依赖中添加分页助手和需要的json格式包。这里已经写好了,复制到l文件的dependencies中即可。
<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>4.1.6</version>
</dependency>
<dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.4</version><classifier>jdk15</classifier>
</dependency>
在resources文件夹下,找到application.properties全局配置文件,然后。根据自己的项目的实际情况,配置属于自己的应用名称、占用的端口号、数据库驱动、数据源名称、数据库连接地址、数据库的用户名和密码等。
# 应用名称
spring.application.name=demo
# 应用服务 WEB 访问端口
server.port=8888
# 数据库驱动:
spring.datasource.driver-class-namesql.cj.jdbc.Driver
# 数据源名称
spring.datasource.name=defaultDataSource
# 数据库连接地址
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/demo?serverTimezone=UTC
# 数据库用户名&密码:
spring.datasource.username=root
spring.datasource.password=88888888
在resources文件夹中新建一个名为l的文件,在这里配置一些必要的配置信息。
并把以下代码复制进去,然后修改部分配置为自己真实情况的配置:
spring:datasource:driver-class-name: sql.cj.jdbc.Driverurl: jbbc:mysql://127.0.0.1:3306/demo?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&serverTimezone=Asia/Shanghai&useSSL=trueusername: rootpassword: 88888888servlet:multipart:max-file-size: 10MBmax-request-size: 100MBmybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: ityconfiguration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpllogging:file:path: D:/demo/server:port: 8888
打开MYSQL,创建项目的中的demo数据库并创建一张login表。如果是自己有测试数据库和表,则无需按照我的demo流程走。
create database demo;
use demo;
create table login(username varchar(10) ,password varchar(100)
);
entity:实体层。这里写的是实体类的定义,数据表中的每个字段名都作为实体类中的一个成员变量,然后这里再实现每个成员变量的get和set的方法。
以demo数据库中的login表为例子,可知username和password的类型是varchar,那么就可以跟着这个类型编写它的代码样例了。在entity层创建一个Login.java文件:
定义用户名和密码的类型,并创建setter和getter:
Login.java
ity;public class Login {private String username;private String password;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;}
}
控制层。控制层中定义了提供给前端的接口的路径,前端使用本接口的方法(GET还是POST),以及需要传输的参数。前端发送来的请求首先传到 “控制器” 中,这里接受前端传来的请求,并将这个请求传到service层(调用了service层的接口)。
在controller文件夹下创建一个LoginController.java文件,并写入样例代码:
ller;ity.Login;
ample.demo.service.LoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;@RestController
@RequestMapping(value = "/Login")
public class LoginController {@Autowiredprivate LoginService LoginService;@RequestMapping(value="/login1",method = RequestMethod.POST)private Login login1(@RequestParam String username, @RequestParam String password){return LoginService.login1(username,password);}@RequestMapping(value = "/login2",method = RequestMethod.POST)private Login login2(@RequestBody Login l2) {return LoginService.Username(),l2.getPassword());}
}
IMPL,implement的缩写。该层定义了相关service的接口,只是接口,实现接口的代码放在其上层文件夹Service中。接受从控制层controller中传递过来的请求,然后将请求传递给DAO层。
在Service文件夹下创建IMPL文件夹,并在IMPL文件夹下创建一个ILoginService.java文件,并写入样例代码:
ample.demo.service.impl;
ity.Login;public interface ILoginService {Login login1(String username, String password);Login login2(String username, String password);
}
服务层service接口的实现。在这里调用了DAO接口,将需要操作数据库的请求传递给DAO层。
在Service文件夹下创建一个LoginService.java文件,并写入样例代码:
ample.demo.service;ample.demo.dao.LoginDao;
ity.Login;
ample.demo.service.impl.ILoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class LoginService implements ILoginService {@Autowiredprivate final LoginDao LoginDao;public LoginService(LoginDao LoginDao) {this.LoginDao = LoginDao;}@Overridepublic Login login1(String username, String password) {return LoginDao.login1(username,password);}@Overridepublic Login login2(String username, String password) {return LoginDao.login2(username,password);}}
数据库对后端服务的接口层。接受来自服务层service的请求,将请求传递给mapper。如果是@RequestParam方式的话,则@Param(“username”)中的username以及@Param(“password”)中的password对应的是mapper层中#{}中的参数。@RequestBody亦是如此。
在Dao文件夹下创建一个LoginDao.java文件,并写入样例代码:
ample.demo.dao;ity.Login;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import org.springframework.beans.factory.annotation.Autowired;@Repository
@Mapper
public interface LoginDao {@Autowired(required = false)Login login1(@Param("username") String username, @Param("password") String password);Login login2(@Param("username") String username, @Param("password") String password);
}
数据库操作层,这里写SQL语句,实现dao接口,接受dao接口传入的参数并执行SQL语句操作数据库。
在mapper文件夹下创建一个l文件,并写入样例代码:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis//DTD Mapper 3.0//EN" ".dtd" >
<mapper namespace=ample.demo.dao.LoginDao"><resultMap id="BaseResultMap" type=ity.Login"></resultMap><select id="login1" resultMap="BaseResultMap" parameterType=ity.Login">SELECT * from login where username=#{username} and password=#{password}</select><select id="login2" resultMap="BaseResultMap" parameterType=ity.Login">SELECT * from login where username=#{username} and password=#{password}</select>
</mapper>
配置启动类DemoApplication,把dao层标注进去。样例代码如下:
ample.demo;batis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan(ample.demo.dao")
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}
点击运行,如果代码按照流程走,会成功启动出现以下画面:
如下图所示,如果前端调用的路径是127.0.0.1:8888/Login/login1,使用的是POST方法,参数有两个,分别是username和password。因为是@RequestParam,所以参数是通过url传输的,例如127.0.0.1:8088/Login/login1?username=zhangsan&password=88888888。
运行成功后,打开postman。选择post方式,在链接中写入127.0.0.1:8088/Login/login1,然后选择Params,填写key-value,然后点击send。
回看5.6,我们可以知道,以@RequestParam方式的接口login1,其语法是查询demo数据库的login表中用户名和密码是某某的所有信息。因为我填写的是login表存在的正确的用户名和密码,所以能在postman看到正确的返回结果。
在IDEA的后台日志也可以看到查询结果:
@requestBody的参数是通过请求体传输的,他是在http包的body层传输,格式是JSON格式。以@requestBoby这种接口方式的好处就是是在url中看不到参数的值,因而更安全。
如下图所示,如果前端调用的路径是127.0.0.1:8888/Login/login2,使用的是POST方法,参数有两个,分别是username和password,以json的方式传值。
运行成功后,打开postman。选择post方式,在链接中写入127.0.0.1:8088/Login/login2,然后选择Body下的raw(以json的方式),填写key-value的json格式,然后点击send。
回看5.6,我们可以知道,以@RequestBody方式的接口login2,其语法是查询demo数据库的login表中用户名和密码是某某的所有信息。因为我填写的是login表存在的正确的用户名和密码,所以能在postman看到正确的返回结果。
在IDEA的后台日志也可以看到查询结果:
好了,今天的分享就到此为止。
分享不易,建议一键三连再走。
本文发布于:2024-02-02 00:38:05,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170681086840259.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |