一、 先交代下运行环境
1. jdk 8
2. SpringBoot 2.0
3. Mysql 5.5
4. Maven
二、创建项目,具体操作省略了
三、项目创建好了,按照国际惯例;先在页面上输出 Hello SpringBoot!
对,没错;这就是我们想好的结果。具体怎么做了,很简单
1. 在pom.xml文件中插入template模板插件
<!--模板插件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
- 在配置文件中设置项目访问根路径和端口号
server:
port: 8081 #设置端口号
servlet:
context-path: /girl #设置项目名称
- 在Controller中写以下代码
package com.xt.girl.Controller;
import org.springframework.stereotype.Controller;
/**
* 测试类 helloController
*/
@Controller
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "index";
}
}
4.在resource目录下新建templates文件夹,在该文件夹下新建html页面
5.最后当然是运行项目啦!然后输入地址就能够访问我们的index.html页面了。
四、接下来就是SpringBoot对mysql数据库的操作了
1. 首先也是配置相关插件
<!--jpa插件-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--mysql数据库连接驱动插件-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
- 数据库驱动相关配置(需要先创建数据库,才能生成对应的表,表是根据实体类生成的)
datasource:
driver-class-name: com.mysql.jdbc.Driver #jdbc驱动
url: jdbc:mysql://127.0.0.1:3306/dbgirl #数据库连接地址
username: root #用户名
password: 123 #密码
jpa: #jpa插件配置
hibernate:
ddl-auto: update #选择创建表的方式(create:每次执行都会创建,update:不存在则创建,存在则不创建)
naming: #事务回滚时需要配置如下
physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
show-sql: true
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
- 实体类相关代码
package com.xt.girl.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
/**
* 实体类 用于映射
*/
@Entity
public class Girl {
@Id
@GeneratedValue
private Integer id;
private String cupSize;
private Integer age;
/**
* 必须要有无参构造方法,否则不报错
*/
public Girl() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getCupSize() {
return cupSize;
}
public void setCupSize(String cupSize) {
this.cupSize = cupSize;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
- 在Controller层写相关的代码
package com.xt.girl.Controller;
import com.xt.girl.domain.Girl;
import com.xt.girl.repository.GirlRepository;
import com.xt.girl.Service.GirlService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* GirlController
*/
@RestController //@RestController = @Controller + @ResponseBody 组合注解
public class GirlController {
@Autowired
private GirlRepository girlRepository;
@Autowired
private GirlService girlService;
/**
* 查询所有数据
* @return
*/
@GetMapping(value = "/girls") // @GetMapping(value = "/girls")=@RequestMapping(value="/girls", RequestMethod.GET)
public List<Girl> girllist() {
return girlRepository.findAll();
}
/**
* 新增数据
* @param cupSize
* @param age
* @return
*/
@PostMapping(value = "/girls")
public Girl girlAdd(@RequestParam("cupSize") String cupSize,
@RequestParam("age") Integer age) {
Girl girl = new Girl();
girl.setCupSize(cupSize);
girl.setAge(age);
return girlRepository.save(girl);
}
@PostMapping(value = "/girls/two")
public void girlAddTwo() {
girlService.insertTwo();
}
/**
* 查询某一个
* @param id
* @return
*/
@GetMapping(value = "/girls/{id}")
public Girl girlFindOne(@PathVariable("id") Integer id) {
//return girlRepository.findOne(id);
return girlRepository.findById(id).orElse(null);
}
/**
* 更新
*/
@PutMapping(value = "/girls/{id}")
public Girl girlUpdate(@PathVariable("id") Integer id,
@RequestParam("cupSize") String cupSize,
@RequestParam("age") Integer age) {
Girl girl = new Girl();
girl.setId(id);
girl.setAge(age);
girl.setCupSize(cupSize);
return girlRepository.save(girl);
}
/**
* 删除
* @param id
*/
@DeleteMapping(value = "girls/{id}")
public void girlDelete(@PathVariable("id") Integer id) {
//girlRepository.delete(id);
girlRepository.deleteById(id);
}
}
- 测试代码是否成功,先查看数据库发现有一条数据
那我们用postman新增一条数据
查看mysql数据库看看数据是否插入成功
接下来,我们试一下查询全部的操作
其他的我就不测试了,源码见:https://github.com/xt998/SpringBoot-jdbc