spring boot数据库操作(以mysql为例)

xiaoxiao2021-02-28  130

添加数据库支持

在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进行测试,很不错的工具

转载请注明原文地址: https://www.6miu.com/read-33736.html

最新回复(0)