首先要在 pom.xml 中引用 jdbc 和 ojdbc 的依賴
註:ojdbc 的版本會依照 Oracle 資料庫的版本而有所不同
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
</dependency>
在設定檔中設定資料庫連線資訊
application.properties:
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XE
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.username=RUYUT
spring.datasource.password=abcd1234
本次示範用的資料表:
CREATE TABLE MEMBER
(
MEMBER_ID NUMBER PRIMARY KEY NOT NULL,
MEMBER_NAME VARCHAR2(50) NOT NULL,
MEMBER_EMAIL VARCHAR2(50) NOT NULL
);
insert into MEMBER values (1, 'Ruyut', 'a@ruyut.com');
insert into MEMBER values (2, '小明', 'abc@google.com');
新增一個 MemberRepository 類別,用來讀取資料
@Repository
public class MemberRepository {
private final JdbcTemplate jdbc;
@Autowired
public MemberRepository(JdbcTemplate jdbc) {
this.jdbc = jdbc;
}
public List<Map<String, Object>> findAll() {
String sql = "select * from MEMBER";
List<Map<String, Object>> list = jdbc.queryForList(sql);
return list;
}
}
新增一個 MemberController,回應網頁請求
這裡我們偷懶直接用 Controller 存取 Repository, 正常中間應該至少還要有個
Service 處理業務邏輯
@RestController
public class MemberController {
@Autowired
MemberRepository memberRepository;
@GetMapping("/member")
public List<Map<String, Object>> member() {
return memberRepository.findAll();
}
}
使用瀏覽器打開 http://localhost:8080/member 這個網址就會讀取資料庫並顯示讀取到的資料
[
{
"MEMBER_ID": 1,
"MEMBER_NAME": "Ruyut",
"MEMBER_EMAIL": "a@ruyut.com"
},
{
"MEMBER_ID": 2,
"MEMBER_NAME": "小明",
"MEMBER_EMAIL": "abc@google.com"
}
]
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com