<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
#端口 server.port=8888 #MySQL配置 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/spring?characterEncoding=utf8&useSSL=false spring.datasource.username=root spring.datasource.password=Panbing936@ #swagger配置 swagger.enabled=true swagger.base-package=com.example.demo.controller swagger.base-path=/** #SpringData JPA配置 ##validate 加載hibernate時,驗證建立數據庫表結構 ##create 每次加載hibernate,從新建立數據庫表結構,這就是致使數據庫表數據丟失的緣由。 ##create-drop 加載hibernate時建立,退出是刪除表結構 ##update 加載hibernate自動更新數據庫結構 ##validate 啓動時驗證表的結構,不會建立表 ##none 啓動時不作任何操做 spring.jpa.hibernate.ddl-auto=update ##控制檯打印sql spring.jpa.show-sql=true #不能少 spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
@Entity @Table(name="users") public class Users { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; private String userName; private String password; //set.get方法省略 }
public interface UserRepository extends JpaRepository<Users,Integer> { }
@RestController public class UserController { @Autowired private UserRepository userRepository; @GetMapping(value ="findAllUser") public List findAll() { return userRepository.findAll(); } @GetMapping(value = "getOne") public Users getOne(Integer id) { // Users users= userRepository.findOne(id); // return users; return userRepository.findOne(id); } @GetMapping(value = "delUserById") public String delUserById(int id) { userRepository.delete(id); return "delete success"; } @GetMapping(value = "save") public String save(String userName,String password) { // userRepository.save(userName,password); Users users=new Users(userName,password); userRepository.save(users); return "save success"; } }
在這以前要在數據庫添加幾條數據 測試findAllUser方法java
測試getOne方法 測試save方法 測試delUserById方法 刷新數據庫確認一下,證實測試確實成功了 mysql
@Id 標註用於聲明一個實體類的屬性映射爲數據庫的主鍵列。該屬性一般置於屬性聲明語句以前,可與聲明語句同行,也可寫在單獨行上。 @Id標註也可置於屬性的getter方法以前。git
@GeneratedValue 用於標註主鍵的生成策略,經過strategy 屬性指定。默認狀況下,JPA 自動選擇一個最適合底層數據庫的主鍵生成策略:SqlServer對應identity,MySQL 對應 auto increment。 在javax.persistence.GenerationType中定義瞭如下幾種可供選擇的策略: –IDENTITY:採用數據庫ID自增加的方式來自增主鍵字段,Oracle 不支持這種方式; –AUTO: JPA自動選擇合適的策略,是默認選項; –SEQUENCE:經過序列產生主鍵,經過@SequenceGenerator 註解指定序列名,MySql不支持這種方式 –TABLE:經過表產生主鍵,框架藉由表模擬序列產生主鍵,使用該策略可使應用更易於數據庫移植。github
@Table(name="CUSTOMERS") @Entity public class Customer { @GeneratedValue(strategy=GenerationType.AUTO) @Id private Integer id; private String name; private String email; private int age; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; }
@Table(name="CUSTOMERS") @Entity public class Customer { private Integer id; private String name; private String email; private int age; @GeneratedValue(strategy=GenerationType.AUTO) @Id public Integer getId() { return id; } public void setId(Integer id) { this.id = id; }
@Table(name="CUSTOMERS") @Entity public class Customer { @Id private Integer id; private String name; private String email; private int age; @GeneratedValue(strategy=GenerationType.AUTO) public Integer getId() { return id; } public void setId(Integer id) { this.id = id; }
github代碼spring
我的網站sql