มาต่อกันที่ถ้าเราจะใช้ Database ที่เป็น External กันบ้างจะทำยังไงครับ
1. Config POM เหมือนกับ
อันที่แล้ว เลย
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
2. เพิ่ม Library สำหรับ Connect Database ที่ต้องการ
3. ต่อไป Config เพิ่มใน application.properties ต่อไปเป็นตัวอย่างที่ใช้ประจำครับ มีเพิ่มเติมสามารถไปดูได้ที่
Spring Boot Reference ครับ
spring.datasource.url=jdbc:mysql://localhost/springboot
spring.datasource.username=root
spring.datasource.password=password1
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.open-in-view=true
spring.jpa.show-sql=true
spring.datasource.initialize=true
- spring.datasource.url = URL ติดต่อ Database
- spring.datasource.username = Username ติดต่อ Database
- spring.datasource.password = Password ติดต่อ Database
- spring.datasource.driver-class = Driver ต่อต่อ Database
- ถ้าจะติดต่อผ่าน JNDI ให้ใช้ spring.datasource.jndi-name
- spring.jpa.hibernate.ddl.auto = กำหนดว่าจะสร้าง ลบ หรืออัพเดทก่อนไหม
- spring.jpa.open-in-view = สำหรับให้สามารถดึงข้อมูลตอนอยู่บนหน้าจอได้ มันคือ SessionInView
- spring.jpa.show-sql = จะให้เห็น SQL ไหม
- spring.datasource.initialize ให้อ่านค่า data.sql
4. ตอนนี้ Spring Boot รู้ล่ะว่าใช้งาน Spring Data JPA
5. สร้าง Entity ขึ้นมาเพื่อลองใช้งาน
package tutorial.spring4.entities;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "AUTHOR")
public class Author implements Serializable {
@Id
@Column(name = "AUTHOR_CODE")
private String authorCode;
@Column(name = "FIRST_NAME")
private String firstname;
@Column(name = "LAST_NAME")
private String lastname;
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getAuthorCode() {
return authorCode;
}
public void setAuthorCode(String authorCode) {
this.authorCode = authorCode;
}
}
6. ลอง start ดูครับ จะเห็นว่ามีการสร้าง Table นี้ขึ้นมาให้เลย
7. ต่อไปสร้าง @Repository
package tutorial.spring4.repositories;
import org.springframework.data.jpa.repository.JpaRepository;
import tutorial.spring4.entities.Author;
public interface AuthorRepository extends JpaRepository<Author, String> {
}
8. สามารถใช้งานได้แล้ว ส่วนการใช้งาน Spring Data JPA เดี๋ยว ผมเพิ่มให้แยกส่วนนะครับ เพราะตรงส่วนนั้นก็เยอะเหมือนกัน
PS. ถ้าอยากให้มีการ Initialize ค่า สามารถใช้ data.sql สร้าง SQL Insert ก่อนได้ครับ โดยไว้ที่ src/main/resources ครับ
References
Basic
1. Spring Boot ตอนที่ 1 มาทำความรู้จักกับ Spring Boot
2. Spring Boot ตอนที่ 2 Hello World
3. Spring Boot ตอนที่ 3 โครงสร้างของ Project
4. Spring Boot ตอนที่ 4 Spring Boot กับ Thymeleaf
5.Spring Boot ตอนที่ 5 Spring Boot กับ Database [แบบ Embeded]
6.Spring Boot ตอนที่ 6 กับ Production Database
7.Spring Boot ตอนที่ 7 Security
8.Spring Boot ตอนที่ 8 Testing