2019年8月30日 星期五

2019年8月15日 星期四

Spring Data Jpa - Hibernate 一對一 單向 跟一對多 單向

 一對一 單向
package com.example.demo.dto;
import com.example.demo.model.Student;
public class PersonDTO2 {

    private Long id;    private String  author;    private int  price;    private String title;    private Student student ;

    public Student getStudent() {
        return student;    }

    public void setStudent(Student student) {
        this.student = student;    }

    public void setId(Long id) {
        this.id = id;    }

    public void setAuthor(String author) {
        this.author = author;    }

    public void setPrice(int price) {
        this.price = price;    }

    public void setTitle(String title) {
        this.title = title;    }

    public PersonDTO2() {
    }

    public Long getId() {
        return id;    }

    public String getAuthor() {
        return author;    }

    public int getPrice() {
        return price;    }

    public String getTitle() {
        return title;    }

    @Override    public String toString() {
        return "PersonDTO2 [id=" + id + ", author=" + author                + ", price=" + price + ", title=" +
                 title + ",  student " + student  +
                "]";    }
}

2019年8月13日 星期二

JAVA面試題

1.物件導向有哪些,並說說這些特性?

Ans:
           。物件導向有 :  抽象 、繼承 、多型、封裝。


           。 抽象 一個類中沒有包含足夠的信息來描述一個具體的對象就是抽象類 。

           。 繼承    類別物件的資源可以延伸和重複使用,在程式中可以利用extends 來實作繼承關係。

           。 多型    多個相同名稱的方法,傳入不同的參數,會執行不同的敘述。

           。 封裝  封裝是把數據和操作的方法封裝起來,對數據的訪問只能通過已定義的接口進行訪問。 


2.作用域  public  ,  private  , protected, 以及不寫時的區別
Ans:
作用域
當前類
同一package
子孫類
其他package
public
       
protected
      
friendly
    
private
  
不寫時 默認為  friendly

3.甚麼是 jira  、 jen kins


Hibernate 關係設定


A.   關系種類

1.   一對一: 一對一單向(主鍵,外鍵), 一對一雙向(主鍵,外鍵)
例:部門對於職位
   
2.   一對多: 一對多單向,多對一單向,多對一雙向
例:老闆對於員工 主控權是在多  效能會比較好  會減少很多查詢!


3.   多對多: 多對多單向,多對多雙向
例:餐廳位置,一個人有一個位置,多人有多人的位置



B.簡單  建立 H2 資料庫 的方法
   因為我們要先走資料庫可以比對所以要先建立資料庫來設定關係


1.先開啟資料檔創建 JAVA 
  創建 Book , Student  兩個資料夾


2.資料庫
BOOK的 Java 設定

package com.example.demo.model;
import lombok.Data;
import javax.persistence.*;
/** * An entity class which contains the information of a single person. * * @author Petri Kainulainen */@Entity@Table(name = "Book")
@Data  //提醒這邊要加上Data 才會幫忙建置public class Book  {

    @Id    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    //屬性      private String  author;    private int  price;    private String title;

    /**     * 一對一單向     * @OneToOne 設定主要關係     * @JoinColumn 對於有關聯進行設定     * 因為我們只有屬性 沒有getset的設置     * 本來要加在get 上面只要 加入在     * 屬性設定上面就可以了     */    @OneToOne    @JoinColumn(name="StudentId")
    private Student student;


    @Version    private long version = 0;

}

Student的 Java 設定

package com.example.demo.model;
import lombok.Data;
import javax.persistence.*;
@Entity@Table(name = "Student")
@Data //提醒這邊要加上Data 才會幫忙建置public class Student {

    @Id    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String Name;    private int    Book;
    @Version    private long version = 0;


}

3.接下來就可以進行連線設定