Freemarker เป็น template engine ที่ใช้สำหรับการแสดงผลหรือรวมละเอียดข้อมูลที่ได้รับจากภายนอกเป็นอย่างหลัก, ไม่ได้มีฟังก์ชันในการติดต่อหรือจัดการกับฐานข้อมูลโดยตรง. การติดต่อกับฐานข้อมูลควรทำผ่านภาษาโปรแกรมหลัก เช่น Java, และแค่ส่งข้อมูลที่ต้องการไปยัง template ของ Freemarker เพื่อแสดงผล.
ดังนั้น, การทำงานร่วมกับฐานข้อมูลใน Freemarker คือการรับข้อมูลที่ได้จากฐานข้อมูลผ่านภาษาโปรแกรมหลักและส่งให้ Freemarker แสดงผล.
ตัวอย่างกระบวนการ:
ใช้ภาษาโปรแกรมหลักเชื่อมต่อฐานข้อมูล: สมมติว่าเราใช้ Java และ JDBC สำหรับการติดต่อฐานข้อมูล.
ดึงข้อมูล: เรียกข้อมูลจากฐานข้อมูลด้วย SQL query.
นำข้อมูลไปยัง Data Model: แปลงข้อมูลที่ได้รับเป็น objects หรือ data structures ที่ Freemarker รองรับ, เช่น lists หรือ maps.
ประมวลผลใน Template: ส่ง data model ไปยัง Freemarker template และให้ template แสดงผลข้อมูลนั้น.
ตัวอย่างโค้ด:
Java:
// 1. เชื่อมต่อฐานข้อมูล
Connection connection = DriverManager.getConnection(URL, USER, PASSWORD);
// 2. ดึงข้อมูล Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * FROM users");
// 3. นำข้อมูลไปยัง Data Model List
<User>
users = new ArrayList<>();
while(resultSet.next()){
User user = new User();
user.setId(resultSet.getInt("id"));
user.setName(resultSet.getString("name"));
users.add(user);
}
// 4. ส่ง data model ไปยัง Freemarker Map
<String, Object>
dataModel = new HashMap<>();
dataModel.put("users", users);
Freemarker Template (users.ftl
):
<ul>
<#list users as user>
<li>
${user.id}: ${user.name}
</li>
</#list>
</ul>
หมายเหตุ: อย่าลืมใช้ connection pooling และการจัดการข้อผิดพลาดที่เหมาะสมเมื่อทำงานร่วมกับฐานข้อมูลเพื่อประสิทธิภาพและความปลอดภัย.
จำนวนคนดู : 1,175 | วันที่สร้าง : 08/09/2023 |