[Play Framework] - Day 3 : Kết nối mysql DB và tạo DB evolution


Phần trước chúng ta đã đã tìm hiểu về cấu trúc mặc định của Playframework , bạn thấy rất nhiều thành phần của nó và có sẽ bạn sẽ tự hỏi model ở đâu và làm sao để kết nối tới database.Chúng ta sẽ tìm hiểu về điều đó trong bài này.

Database connection

Đầu tiên ta cần định nghĩa database connection, có 2 nơi chúng ta cần sửa, nếu bạn đã xem phần trước chắc bạn cũng đoán được :
  1. Define những thư viện bạn cần trong build.sbt .
  2. Define các thông số kết nối ở application.conf .
Bạn cần những thư viện sau đây :
Bạn cần jdbc :
libraryDependencies += jdbc 
Và tất nhiên bạn cần mysql  :
libraryDependencies += "mysql" % "mysql-connector-java" % "5.1.34"
Về thông tin kết nối trong application.conf :
db {
  default {
    driver=com.mysql.jdbc.Driver
    url="jdbc:mysql://127.0.0.1/startWithPlay"
    username="hoaipt"
    password=123
  }
}
Thông tin mà tôi cung cấp đó là tên của database (startWithPlay)  cùng đường dẫn đến nó, và username cùng password .
Ok,hãy chạy lại project startWithPlay, khi bạn mới chỉ run lên project bạn sẽ không thấy thông tin rằng project đã được kết nối tới database :
Bạn cần mở browser và chạy project theo đường dẫn localhost:9000 ta sẽ thấy nó bắt đầu kết nối đến database :
Vậy là ta đã kết nối được tới mysql database.Bây giờ bạn có thể tự tạo bảng trong cơ sở dữ liệu của bạn hoặc sử dụng evolution trong playframeword để làm việc đó.

Tạo database với Evolution

Bạn cần khai báo sử dụng evolution trong build.sbt :
libraryDependencies += evolutions
Bây giờ bạn cần tạo các file script chứa query tạo bảng, các file này nên nằm trong thư muc với đường dẫn sau :
conf/evolutions/{connection name}
Các file script có 2 đặc điểm sau :
  1.  Tên của các file script nên là 1.sql , 2.sql và cứ thế . . . Khi bạn cần thêm bảng hay thay đổi cấu trúc bảng thì bạn tạo file mới với number cao hơn.
  2. Nội dung của file script gồm 2 phần Up để khởi tạo và Down để revert .
Ví dụ giờ tôi cần tạo bảng users, tôi sẽ có file 1.sql nằm trong thư mục conf/evelutions/default.


Nội dung của 1.sql như sau :
# --- !Ups

CREATE TABLE users (
  id bigint(20) NOT NULL AUTO_INCREMENT,
  email varchar(255) NOT NULL,
  password varchar(255) NOT NULL,
  full_name varchar(255) NOT NULL,
  is_admin boolean NOT NULL,
  PRIMARY KEY (id)
);

# --- !Downs

DROP TABLE users;
Và chúng ta sẽ thu được kết quả như sau :
Khi này bạn sẽ chọn Apply this script now để run query mà bạn đã define.

Video

Video dưới đây được thực hiện với play version 2.4 nhưng không có khác biệt gì nhiều với 2.5.







Comments