依賴包準備java
這裏選用mysql做爲數據庫,須要用到的包有三個,須要將相關依賴寫入pom.xml,以下:mysql
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
數據庫鏈接設定spring
在src/main/resources/application.properties文件中,加入如下配置信息:sql
spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.username=test spring.datasource.password=test spring.datasource.tomcat.max-idle=10 spring.datasource.tomcat.max-wait=10000 spring.datasource.tomcat.min-idle=5 spring.datasource.tomcat.initial-size=5
其中test是數據庫名稱,username和password可自行設置和修改數據庫
咱們將要操做的實體很簡單,只有一個id屬性和一個name屬性。定義以下:segmentfault
@Entity @Table(name="T_USER") public class User { /** * 用戶ID */ @Id @GeneratedValue private int id; /** * 用戶名 */ private String name; // GETTER和SETTER此處省略... }
<說明>後端
備忘
在測試中,此處的id類型使用Integer會報錯,緣由尚不清楚,使用int則無問題。tomcat
以簡單的User對象爲例,咱們來實現一個簡(chou)單(lou)的的CRUD處理restful
Restful風格架構
對於簡單的增刪改查功能,通常的restful接口定義以下:
GET /user # 取得user列表 POST /user # 提交user PUT /user # 更新user PATCH /user # 更新user(個別屬性) DELETE /user/:id # 刪除user
路由設置
對於純數據的Java後端架構來說,MVC中少了View,但M和C還是必不可少的。Model用於管理數據實體及持久化相關的處理,Controller則是整個業務的核心。
首先,對於user的每一個接口,咱們在controller中定義對應請求接收方法:
@RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("") public ResponseEntity<?> getList() { return new ResponseEntity<Object>(userService.getUserList(), HttpStatus.OK); } @PostMapping("") public ResponseEntity<?> create(@RequestBody User user) { return new ResponseEntity<User>(userService.save(user), HttpStatus.CREATED); } @PatchMapping("") public ResponseEntity<?> update(@RequestBody User user) { return new ResponseEntity<User>(userService.save(user), HttpStatus.ACCEPTED); } @DeleteMapping("/{id}") public ResponseEntity<?> remove(@PathVariable("id") int id) { userService.remove(id); return new ResponseEntity<User>(HttpStatus.ACCEPTED); } }
<說明>
上面經過UserService的調用,實現了user的CRUD操做。Spring經過@Autowired註解,會自動建立UserService的實例。
經過UserService的相關操做,咱們能夠很容易的對user表進行CRUD操做。代碼以下:
@Service public class UserService { @Autowired private UserRepository userRepo; public Iterable<User> getUserList() { return userRepo.findAll(); } public User save(User user) { return userRepo.save(user); } public void remove(int id) { userRepo.delete(id); } }
<說明>
對於UserRepository來說,僅僅是一個簡單的繼承了CrudRepository的接口。代碼以下:
public interface UserRepository extends CrudRepository<User, Integer> {}
關於Repository的說明,能夠看這篇文章pring Boot學習筆記(三)Repository的使用
簡單接口測試可以使用POSTMAN進行,結果以下:
取得用戶列表
插入2條數據
取得用戶列表
更新用戶
刪除用戶
取得用戶列表
目前只是實現了一個簡單的CRUD操做,就這個簡單流程來說,如下幾點尚欠缺: