- 創建一個spring boot 項目
- 目錄結構
- 添加maven 依賴
-1.創建一個spring boot 項目.
2.添加maven 依賴
1.創建一個spring boot 項目.
2.添加maven 依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
- application.properties 配置文件內容如下
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/zqp
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.show-sql= true
spring.jpa.hibernate.ddl-auto=update//create //等等.就是跟着實體創建數據庫表.正式環境基本不用
spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jackson.serialization.indent_output=false
dao 層:
-
public interface PersonRespository extends JpaRepository<Person, Integer>{
}
- model層
- @Entity
public class Person {
@Id
@GeneratedValue
private int id;
private String name;
private String age;
private Person(int id, String name, String age) {
super();
this.id = id;
this.name = name;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
private Person() {
super();
// TODO Auto-generated constructor stub
}
}
- servece 層
public class PersonService {
@Autowired
PersonRespository personRespository;
@Transactional(rollbackOn=IllegalArgumentException.class)
public Person savePersonWithRollBack(Person person){
Person p = personRespository.save(person);
if(p.getName().equals("xxx")){
throw new IllegalArgumentException("xx 數據庫 ,已經存在");
}
return p;
}
}
- controller 層
@RestController
@SpringBootApplication
public class DataController {
//測試事務能否回滾
@RequestMapping("/rollBack")
public Person rollBack(Person person){
Person p = personService.savePersonWithRollBack(person);
return p;
}
}
- 注意.spring boot 的入口要寫到其他包目錄的上面.不然其他bean 會掃描不到.spring boot 的入口 是從啓動程序上級包開始像下掃描
- spring data-jpa 默認開啓了事務註解,可以直接使用可以看spring-data-jpa包下 simplejpaRespository.class
- 這篇博客是基礎搭建.實際上spring data-jpa 有很強大的功能.