添加数据库支持
在maven中添加组件(pom.xml)
<dependency>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-starter-data-jpa
</artifactId>
</dependency>
<dependency>
<groupId>mysql
</groupId>
<artifactId>mysql-connector-java
</artifactId>
</dependency>
配置datasource和jpa(application.yml)
为mysql和jpa添加配置
spring:
datasource:
driver
-class-name: com
.mysql
.jdbc
.Driver
url: jdbc:mysql:
username: root
password:
123456
jpa:
hibernate:
ddl
-auto: update
show
-sql:
true
注:jpa配置中ddl-auto有多种选择
create应用启动即清空数据库所有表重新创建
create-drop应用停止时就会删掉所有表none默认不执行任何操作update第一次运行创建表结构,与create不同点在于不会删除原有数据validate验证类属性是否与表结构一致,不一致会报错
创建java bean类,为类添加@Entity注解
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Girl {
@Id
@GeneratedValue
private Integer id ;
private String name ;
private Integer age ;
public Girl() {
};
public Integer
getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String
getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer
getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
注意包不要导错,包不要导错,包不要导错~
创建对应接口继承JpaRepository
import org.springframework.data.jpa.repository.JpaRepository;
public interface GirlRepository extends JpaRepository<Girl,Integer> {
}
在Controller中创建实例,通过Jpa调用操作数据库方法。
@RestController
public class GirlController {
@Autowired
private GirlRepository girlRepository;
@GetMapping(value =
"/girls")
public List<Girl>
girls(){
return girlRepository.findAll();
}
@PostMapping(value =
"/girls")
public Girl
girls(@
RequestParam("name") String name,@
RequestParam("age") Integer age){
Girl girl =
new Girl();
girl.setAge(age);
girl.setName(name);
return girlRepository.save(girl);
}
}
此外事务管理通过在函数上添加@Transactional注解
@Autowired
private GirlRepository girlRepository;
@Transactional
public void saveTwo(){
Girl girlA =
new Girl();
girlA.setName(
"星星");
girlA.setAge(
12 );
girlRepository.save(girlA);
Girl girlB =
new Girl();
girlB.setName(
"The Apple");
girlB.setAge(
11 );
girlRepository.save(girlB);
}
PS:post方法可以通过下载安装Postman进行测试,很不错的工具