Java springboot接口迅速上手,帶你半小時(shí)極速入門(mén)
如何通過(guò)springboot來(lái)寫(xiě)一個(gè)簡(jiǎn)單的接口?
想要知道怎么寫(xiě)可能只需要幾步,半小時(shí)足矣
本篇文章只是教大家如何快速地使用。
但是具體是為什么這樣用?以及背后的原理,請(qǐng)大家先認(rèn)真學(xué)習(xí)javaweb-servlet-ssm框架等等,這里就不做過(guò)多的講解。
前期準(zhǔn)備:
首先在idea中新建項(xiàng)目:
new project-spring initializr一路next(如有需要修改的信息,也可以自己修改,不重要)
注意,這里要記得選上,作用是在初始化的時(shí)候,需要那些東西idea就幫你初始化進(jìn)去(當(dāng)然,后期也能自己手動(dòng)加,但是這里為了方便學(xué)習(xí),還是該選的都選上)
- developer tools —spring boot devtools
- web —spring web
- SQL—jdbc api—mysql driver —mybatis framework
最后選完了,確保,右邊欄selected dependencies為如下:
再一路next。。等待加載完成
再在MySQL數(shù)據(jù)庫(kù)中準(zhǔn)備一個(gè)student表:
接著,把src\main\resources中的application.properties文件改名成application.yml,這是因?yàn)閥ml文件的結(jié)構(gòu)比較清晰,好看易懂
application.yml文件是一個(gè)配置文件,作用是可以配置一些數(shù)據(jù)庫(kù)信息,他來(lái)告訴springboot我們的數(shù)據(jù)庫(kù)賬號(hào)密碼呀,表名是啥等等。
以下是我的application.yml,你們可以根據(jù)自己的實(shí)際情況修改對(duì)應(yīng)的信息:
server: port: 8081 spring: #數(shù)據(jù)庫(kù)連接配置 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的相關(guān)配置 mybatis: #mapper配置文件 mapper-locations: classpath:mapper/*.xml
驗(yàn)證先前配置是否成功:點(diǎn)開(kāi)src\main\java\com\wzy\demo\DemoApplication.java
點(diǎn)擊箭頭所指的運(yùn)行按鈕:
若控制臺(tái)出現(xiàn):
并且在瀏覽器中輸入http://localhost:8081/會(huì)出現(xiàn):
則代表配置成功
步驟一:建立實(shí)體類(lèi),需要跟數(shù)據(jù)庫(kù)表字段保持一致
在src\main\java\com\wzy\demo目錄下新建一個(gè)名為entity包
再在entity包下,新建一個(gè)名為Student的class,這個(gè)Student即為實(shí)體類(lèi),該實(shí)體類(lèi)即對(duì)應(yīng)數(shù)據(jù)庫(kù)中的表,類(lèi)中的屬性與數(shù)據(jù)庫(kù)字段保持一致,并且加上構(gòu)造函數(shù)以及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接口,定義要操作的數(shù)據(jù)庫(kù)的動(dòng)作
操作的數(shù)據(jù)庫(kù)的動(dòng)作比如:查詢(xún)、更新、刪除等等
這些動(dòng)作就是mapper
在src\main\java\com\wzy\demo目錄下新建一個(gè)名為mapper包
再在mapper包下,新建一個(gè)接口StudentMapper
又因?yàn)椋瑪?shù)據(jù)庫(kù)中的一行數(shù)據(jù)就對(duì)應(yīng)著一個(gè)對(duì)象
這里假設(shè),我們想要找到所有的學(xué)生信息。
@Mapper public interface StudentMapper { List<Student> findAllStudent(); }
步驟三:建立mapper的xml文件,寫(xiě)具體的sql語(yǔ)句
再在resources目錄下建立一個(gè)名為mapper的包,并且在mapper的包下新建一個(gè)名為StudentMapper.xml的文件。這個(gè)文件就是告訴java具體要寫(xiě)哪些sql語(yǔ)句。
<?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就是指向哪一個(gè)mapper
id是mapper里面的方法名,resultType就是返回的類(lèi)型
這里與前文中application.yml的mapper-locations相對(duì)應(yīng)
步驟四:建立service類(lèi),處理業(yè)務(wù)邏輯
步驟三已經(jīng)得到了數(shù)據(jù)了,但是展示給前端時(shí),需要根據(jù)自己的業(yè)務(wù)邏輯對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步的加工,所以這里在src\main\java\com\wzy\demo下建立service包,并且在service包中,新建一個(gè)StudentService類(lèi),此類(lèi)的作用是處理相應(yīng)的業(yè)務(wù)邏輯
//@Service的意思是將其實(shí)例化, //之前如果有一個(gè)class,是不是需要new一個(gè)對(duì)象才可以用, //這里就可以理解成會(huì)自動(dòng)幫你new,new完了之后,將實(shí)例加到了spring容器當(dāng)中 @Service public class StudentService { //引進(jìn)StudentMapper,@Autowired的意思就是將其實(shí)例化,通過(guò)autowired從spring容器中拿出來(lái),供我們使用 @Autowired private StudentMapper studentMapper; //處理業(yè)務(wù)邏輯,這里由于業(yè)務(wù)過(guò)于簡(jiǎn)單,就空著,查詢(xún)出什么我就返回什么 public List<Student> findAllStudent() { return studentMapper.findAllStudent(); } }
步驟五:在controller類(lèi)中展示處理結(jié)果
在src\main\java\com\wzy\demo下建立controller包,并且在controller包中,新建一個(gè)StudentController類(lèi),此類(lèi)的作用是將信息傳到前端,就是負(fù)責(zé)給瀏覽器返回相應(yīng)的數(shù)據(jù)。
//@RestController會(huì)自動(dòng)幫一個(gè)對(duì)象轉(zhuǎn)換成json的格式 @RestController public class StudentController { @Autowired private StudentService studentService; //@RequestMapping("/getstudent")的意思告訴前端相應(yīng)的地址訪(fǎng)問(wèn) @RequestMapping("/getstudent") public List<Student> getStudent(){ return studentService.findAllStudent(); } }
驗(yàn)證
瀏覽器輸入:http://localhost:8081/getstudent
出現(xiàn)數(shù)據(jù)庫(kù)相關(guān)信息,試驗(yàn)成功
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
SpringBoot實(shí)現(xiàn)RabbitMQ三種使用方式
本文主要介紹了SpringBoot實(shí)現(xiàn)RabbitMQ三種使用方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Intellij IDEA基于Springboot的遠(yuǎn)程調(diào)試(圖文)
這篇文章主要介紹了Intellij IDEA基于Springboot的遠(yuǎn)程調(diào)試(圖文),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10SpringBoot整合MQTT并實(shí)現(xiàn)異步線(xiàn)程調(diào)用的問(wèn)題
這篇文章主要介紹了基于SpringBoot通過(guò)注解實(shí)現(xiàn)對(duì)mqtt消息處理的異步調(diào)用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-11-11Java 8中字符串拼接新姿勢(shì)StringJoiner詳解
在本篇文章里小編給大家整理了關(guān)于Java 8中字符串拼接新姿勢(shì)StringJoiner的詳解內(nèi)容,需要的朋友們參考下。2019-09-09JDBC的基本操作與Statement和PreparedStateMent使用區(qū)別分析
這篇文章主要介紹了JDBC的基本操作與Statement和PreparedStateMent使用區(qū)別,Java Database Connectivity,它是代表一組獨(dú)立于任何數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的API,聲明在java.sql與javax.sql包中,是SUN(現(xiàn)在Oracle)提供的一組接口規(guī)范2023-04-04Java實(shí)現(xiàn)字符數(shù)組全排列的方法
這篇文章主要介紹了Java實(shí)現(xiàn)字符數(shù)組全排列的方法,涉及Java針對(duì)字符數(shù)組的遍歷及排序算法的實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-12-12