javascript
idal 创建springboot 项目_手把手的SpringBoot教程,SpringBoot创建web项目(四)
在實際的開發(fā)過程中,我們需要前端頁面向Java端提交請求,這些請求一般分為get方式和post方式,不管是哪一種方式,一般都會攜帶一些參數(shù)。這一節(jié),我們來演示一下如何給Controller傳遞參數(shù)。
代碼:
@RestController
@RequestMapping("hello")
public class HelloController {
public String hello(){
return "Hello Spring Boot";
}
@RequestMapping("login")
public String login(@RequestParam("username") String username){
return "用戶名:" + username;
}
}
這邊我們用到了@RequestParam注解。
然后,啟動項目,在地址欄訪問:http://localhost:8088/demo/login?username=jack
即可看到效果:
如果我們參數(shù)后面什么都不寫:
http://localhost:8088/demo/login?username=
那么返回就是空:
我們可以設(shè)置參數(shù)的默認(rèn)值:
@RequestMapping("login")public String login(@RequestParam(value="username",defaultValue="未知用戶") String username){
return "用戶名:" + username;
}
再次訪問:http://localhost:8088/demo/login?username=
得:
接下來,我們來演示如何在SpringBoot項目中連接數(shù)據(jù)庫,并且自動創(chuàng)建一張表。
按照慣例,數(shù)據(jù)庫我們依然使用mysql,至于什么是jpa呢?
jpa是sun推出的持久化規(guī)范(java persistens api),JPA通過JDK 5.0注解或XML描述對象-關(guān)系表的映射關(guān)系,并將運行期的實體對象持久化到數(shù)據(jù)庫中。JPA 的目標(biāo)之一是制定一個可以由很多供應(yīng)商實現(xiàn)的API,并且開發(fā)人員可以編碼來實現(xiàn)該API,而不是使用私有供應(yīng)商特有的API。
實現(xiàn)JPA規(guī)范的框架,比較出名的是hibernate。
現(xiàn)在,我們需要在pom文件中引入兩個依賴:
<dependency><groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-jpaartifactId>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
dependency>
分別為spring-data-jpq和mysql驅(qū)動。
Spring Data是一個用于簡化數(shù)據(jù)庫訪問,并支持云服務(wù)的開源框架。其主要目標(biāo)是使得對數(shù)據(jù)的訪問變得方便快捷,并支持map-reduce框架和云計算數(shù)據(jù)服務(wù)。Spring Data 包含多個子項目,spring-data-jpq就是其中的一個。
修改yml文件:
server:port: 8088
context-path: /demo
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/crud
username: root
password: 123456
jpa:
hibernate:
ddl-auto: create
show-sql: true
其中,設(shè)置ddl-auto: create的目的就是在項目啟動的時候,就創(chuàng)建表。
接著,我們?nèi)バ陆ㄒ粋€JavaBean:
代碼:
package com.springboot.study.bean;import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue
private Integer id;
private String username;
private String password;
//無參構(gòu)造方法,這個必須要有,不然會報錯
public User() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
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;
}
}
其中,主鍵ID設(shè)置為自增長。
然后,啟動項目,發(fā)現(xiàn)數(shù)據(jù)庫的表已經(jīng)自動生成了。
在上一節(jié)的yml文件中,我們設(shè)置 ddl-auto 為 create,這會導(dǎo)致每一次啟動項目的時候,都會去數(shù)據(jù)庫里面重新創(chuàng)建表。這不是我們希望看到的,一般在項目開發(fā)中,我們更愿意把這個配置設(shè)置為update,這樣的話,啟動項目時它會去檢測,如果表已經(jīng)存在并且里面是有數(shù)據(jù)的,即不會去重新建表了。
server:port: 8088
context-path: /demo
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/crud
username: root
password: 123456
jpa:
hibernate:
ddl-auto: update
show-sql: true
我們需要使用spring-data-jpa來幫我們實現(xiàn)對用戶表的增刪改查,先去寫一個接口,集成jpa:
package com.springboot.study.service;import org.springframework.data.jpa.repository.JpaRepository;
import com.springboot.study.bean.User;
public interface UserService extends JpaRepository{
}
我們只需要寫上類名和主鍵的類型,即可。
其他什么都不用寫,就OK啦。
編寫Controller:
代碼:
package com.springboot.study.controller;import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
import com.springboot.study.bean.User;
import com.springboot.study.service.UserService;
@RestController
public class UserController {
@Autowired
private UserService userService;
/**
* 獲取所有的用戶列表
* @return
*/
@RequestMapping("findAllUsers")
public ListfindAllUsers(){
return userService.findAll();
}
}
因為邏輯比較簡單,我就直接給出一個例子了,啟動項目,看結(jié)果。。
這次啟動時間稍微長了一點:
瀏覽器輸入:
http://localhost:8088/demo/findAllUsers
返回:
nice!
SpringBoot果然好用,一句sql都沒寫,甚至實現(xiàn)方法都沒寫,我們就完成了功能。
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的idal 创建springboot 项目_手把手的SpringBoot教程,SpringBoot创建web项目(四)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详解mysql数据库的启动与终止_详解M
- 下一篇: java script this_Jav