การทำงานร่วมกับฐานข้อมูล

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,016 วันที่สร้าง : 08/09/2023