springboot+jpa 基礎框架搭建

  • 創建一個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;
    }

}
  1. controller 層
@RestController
@SpringBootApplication
public class DataController {
    //測試事務能否回滾
    @RequestMapping("/rollBack")
    public Person rollBack(Person person){
        Person p = personService.savePersonWithRollBack(person);
        return p;
    }
}
  1. 注意.spring boot 的入口要寫到其他包目錄的上面.不然其他bean 會掃描不到.spring boot 的入口 是從啓動程序上級包開始像下掃描
  2. spring data-jpa 默認開啓了事務註解,可以直接使用可以看spring-data-jpa包下 simplejpaRespository.class
  3. 這篇博客是基礎搭建.實際上spring data-jpa 有很強大的功能.
發佈了35 篇原創文章 · 獲贊 13 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章