官方教程:https://spring.io/guides/gs/accessing-data-mysql/
首先配置:
<!-- JPA Data (We are going to use Repositories, Entities, Hibernate, etc...) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- Use MySQL Connector-J --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
在application.properties配置sql连接:
# 在这里,spring.jpa.hibernate.ddl-auto可以是none,update,create,create-drop,请参阅Hibernate文档,了解详细信息。 # none这是默认设置MySQL,不会更改数据库结构。 # update Hibernate根据给定的Entity结构更改数据库。 # create 每次都创建数据库,但不要在关闭时删除它。 # create-drop创建数据库,然后在SessionFactory关闭时删除它。 # 我们在这里开始是create因为我们还没有数据库结构。 # 第一次运行后,我们可以将其切换到update或none根据程序要求。update当您想对数据库结构进行一些更改时使用。 spring.jpa.hibernate.ddl-auto=create spring.datasource.url=jdbc:mysql://localhost:3306/SpringBootStudy spring.datasource.username=root spring.datasource.password=12345678
配置表的实体类,运行时,如果选择create,则spring boot 会自动在mysql中创建对应的表
package com.example.springbootstudy.database; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class Users { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; private String phone; private String nickname; private String personalSign; private String sex; private String realName; private String personalId; private java.sql.Timestamp createTime; private java.sql.Timestamp updateTime; //省略get set方法 }
由Spring Boot自动创建的表
创建Repository:
package com.example.springbootstudy.database; import org.springframework.data.repository.CrudRepository; import java.util.List; public interface UserRepository extends CrudRepository<Users, Integer> { List<Users> findByNickname(String nickname); }
测试:
@Autowired private UserRepository userRepository; @GetMapping("saveUser") public String saveUser(@RequestParam String phone, @RequestParam String nickname) { Users users = new Users(); users.setPhone(phone); users.setNickname(nickname); userRepository.save(users); return "Success"; } @GetMapping("getUsersByNickname") public List<Users> getUsersByNickname(@RequestParam String nickname) { return userRepository.findByNickname(nickname); }