2018-5-13 반복주기 db연

세번째 반복주기

전원이 꺼지면 데이터가 날라가기때문에, 데이터베이스를 사용을 해야한다.

  • h2데이터베이스는 자바로 구현이 되어있어서, 별도의 설치가 필요없다.
  • h2 라이브러리를 디펜던시에 추가를 하면된다.
  • www.mvnrepository.com에서 디펜던시를 찾으면된다.
  • localhost:8080/h2-console을 입력을 하면 h2콘솔에 로그인을 할 수 있게 된다.

  • h2콘솔에 로그인을 하게 되면 위와같은 창이 나온다. JDBC URL에 jdbc:h2~/projectName을 입력을 하면 연결이 된다.

  • jpa를 사용을 하면 테이블이 자동으로 생성이 된다.
import javax.persistence.Entity;

@Entity
public class User {
    @Id
    private String userId;
    private String password;
    private String name;
    private String email;

    public String getUserId() {
        return userId;
    }

    public String getPassword() {
        return password;
    }

    public String getName() {
        return name;
    }

    public String getEmail() {
        return email;
    }
    ....
}
  • user클래스를 데이터베이스와 매핑을 하기위해서 user클래스에 Entity라는 어노테이션을 설정을 했다.
  • 데이터베이스는 고유한 id값을 위해서 primary key가 필요한데, 이것을 위한 어노테이션이 @Id이다. 이것은 데이터베이스의 primary key가 userId라는 것을 표현한다.
    @Id
    @GeneratedValue
    private long id;
  • 위와같이 @Id어노테이션과 @GeneratedValue어노테이션을 사용을 하면 loing타입의 id값이 primary key가 되고 자동으로 증가를 하게 된다.
@Entity
public class User {
    @Id
    @GeneratedValue
    private Long id;

    @Column(nullable = false, length=20)
    private String userId;
    private String password;
    private String name;
    private String email;
  • @Column(nullable = false, length=20)은 db에서 not null과 길이가 최대 20으로 설정을 한다는 어노테이션이다.

맺으며

  • 레벨2에서는 자바 객체에 대한 설계가 무진장 어려웠었다. 웹을 들어오고 나서는 거기서 왜 인터페이스 상속 적용을 했는지 살짝 알거 같고. 클래스 특히 User클래스를 설계를 해서 이것을 어떻게 db설계에 적용을 할 것인가를 고민하게 된다. 웹은 우선 재미있게 잘 하고 있어서 감사합니다.
Written on May 13, 2018