添加数据库支持
在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://127.0.0.1:3306/dbGirl
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 //将id设为主键
@GeneratedValue //设置Id自增长
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;
//<Girl,Integer>,第一个为需要操作的bean类,第二个参数为bean类中的Id类型,即对应数据库表中的主键类型
public interface GirlRepository extends JpaRepository<Girl,Integer> {
}
- 在Controller中创建实例,通过Jpa调用操作数据库方法。
@RestController
public class GirlController {
@Autowired
private GirlRepository girlRepository;
//通过get方法查询女生列表
@GetMapping(value = "/girls")
public List<Girl> girls(){
return girlRepository.findAll();
}
//通过post方法添加女生列表
@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进行测试,很不错的工具