Java springboot接口迅速上手,带你半小时极速入门
如何通过springboot来写一个简单的接口?
想要知道怎么写可能只需要几步,半小时足矣
本篇文章只是教大家如何快速地使用。
但是具体是为什么这样用?以及背后的原理,请大家先认真学习javaweb-servlet-ssm框架等等,这里就不做过多的讲解。
前期准备:
首先在idea中新建项目:
new project-spring initializr一路next(如有需要修改的信息,也可以自己修改,不重要)
注意,这里要记得选上,作用是在初始化的时候,需要那些东西idea就帮你初始化进去(当然,后期也能自己手动加,但是这里为了方便学习,还是该选的都选上)
- developer tools —spring boot devtools
- web —spring web
- SQL—jdbc api—mysql driver —mybatis framework
最后选完了,确保,右边栏selected dependencies为如下:
再一路next。。等待加载完成
再在MySQL数据库中准备一个student表:
接着,把class="lazy" data-src\main\resources中的application.properties文件改名成application.yml,这是因为yml文件的结构比较清晰,好看易懂
application.yml文件是一个配置文件,作用是可以配置一些数据库信息,他来告诉springboot我们的数据库账号密码呀,表名是啥等等。
以下是我的application.yml,你们可以根据自己的实际情况修改对应的信息:
server:
port: 8081
spring:
#数据库连接配置
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/dt55?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
username: root
password: 888888
#mybatis的相关配置
mybatis:
#mapper配置文件
mapper-locations: classpath:mapper/*.xml
验证先前配置是否成功:点开class="lazy" data-src\main\java\com\wzy\demo\DemoApplication.java
点击箭头所指的运行按钮:
若控制台出现:
并且在浏览器中输入http://localhost:8081/会出现:
则代表配置成功
步骤一:建立实体类,需要跟数据库表字段保持一致
在class="lazy" data-src\main\java\com\wzy\demo目录下新建一个名为entity包
再在entity包下,新建一个名为Student的class,这个Student即为实体类,该实体类即对应数据库中的表,类中的属性与数据库字段保持一致,并且加上构造函数以及get、set方法:
public class Student {
private int id;
private String name;
private int age;
private String hobby;
private String address;
public Student(int id, String name, int age, String hobby, String address) {
this.id = id;
this.name = name;
this.age = age;
this.hobby = hobby;
this.address = address;
}
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 int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
步骤二:建立mapper接口,定义要操作的数据库的动作
操作的数据库的动作比如:查询、更新、删除等等
这些动作就是mapper
在class="lazy" data-src\main\java\com\wzy\demo目录下新建一个名为mapper包
再在mapper包下,新建一个接口StudentMapper
又因为,数据库中的一行数据就对应着一个对象
这里假设,我们想要找到所有的学生信息。
@Mapper
public interface StudentMapper {
List<Student> findAllStudent();
}
步骤三:建立mapper的xml文件,写具体的sql语句
再在resources目录下建立一个名为mapper的包,并且在mapper的包下新建一个名为StudentMapper.xml的文件。这个文件就是告诉java具体要写哪些sql语句。
<?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">
<mapper namespace="com.wzy.demo.mapper.StudentMapper">
<select id="findAllStudent" resultType="com.wzy.demo.entity.Student">
SELECT * FROM student
</select>
</mapper>
注意,这里的namespace就是指向哪一个mapper
id是mapper里面的方法名,resultType就是返回的类型
这里与前文中application.yml的mapper-locations相对应
步骤四:建立service类,处理业务逻辑
步骤三已经得到了数据了,但是展示给前端时,需要根据自己的业务逻辑对数据进行进一步的加工,所以这里在class="lazy" data-src\main\java\com\wzy\demo下建立service包,并且在service包中,新建一个StudentService类,此类的作用是处理相应的业务逻辑
//@Service的意思是将其实例化,
//之前如果有一个class,是不是需要new一个对象才可以用,
//这里就可以理解成会自动帮你new,new完了之后,将实例加到了spring容器当中
@Service
public class StudentService {
//引进StudentMapper,@Autowired的意思就是将其实例化,通过autowired从spring容器中拿出来,供我们使用
@Autowired
private StudentMapper studentMapper;
//处理业务逻辑,这里由于业务过于简单,就空着,查询出什么我就返回什么
public List<Student> findAllStudent() {
return studentMapper.findAllStudent();
}
}
步骤五:在controller类中展示处理结果
在class="lazy" data-src\main\java\com\wzy\demo下建立controller包,并且在controller包中,新建一个StudentController类,此类的作用是将信息传到前端,就是负责给浏览器返回相应的数据。
//@RestController会自动帮一个对象转换成json的格式
@RestController
public class StudentController {
@Autowired
private StudentService studentService;
//@RequestMapping("/getstudent")的意思告诉前端相应的地址访问
@RequestMapping("/getstudent")
public List<Student> getStudent(){
return studentService.findAllStudent();
}
}
验证
浏览器输入:http://localhost:8081/getstudent
出现数据库相关信息,试验成功
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341