"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني فحص الهياكل المتداخلة بكفاءة باستخدام sqlx؟

كيف يمكنني فحص الهياكل المتداخلة بكفاءة باستخدام sqlx؟

تم النشر بتاريخ 2024-11-22
تصفح:223

How Can I Efficiently Scan Nested Structs with sqlx?

المسح إلى الهياكل المتداخلة باستخدام sqlx

تمثل الهياكل المتداخلة تحديات عند استخدام sqlx. ومع ذلك، توفر الوثائق حلاً من خلال استخدام الهياكل المضمنة.

الهياكل المضمنة

يدعم Sqlx الهياكل المضمنة، مما يسمح لك بتعيين قيم للحقول باستخدام قواعد أسبقية Go للسمات والأساليب المضمنة.

مثال التعليمات البرمجية

ضع في اعتبارك الكود التالي، حيث العنوان ليس بنية مضمنة:

type Customer struct {
       Id      int     `json:"id" db:"id"`
       Name    string  `json:"name" db:"name"`
       Address Address `json:"adress"`
}

type Address struct {
       Street string `json:"street" db:"street"`
       City   string `json:"city" db:"city"`
}

سيؤدي هذا الرمز إلى حدوث خطأ عند محاولة المسح الضوئي في بنية العميل لأن حقل العنوان غير مضمن ولا يحتوي على علامة قاعدة بيانات خاصة به.

لحل هذه المشكلة، قم بتضمين العنوان إلى العميل:

type Customer struct {
   Id     int    `json:"id" db:"id"`
   Name   string `json:"name" db:"name"`
   Address
}

من خلال تضمين العنوان، تتم ترقية حقوله (بما في ذلك العلامات) إلى عميل، مما يسمح لـ sqlx بملءها من نتيجة الاستعلام.

إخراج JSON

سيعمل عنوان التضمين على تسوية مخرجات JSON، كما هو موضح أدناه:

{
    "id": 1,
    "name": "foo",
    "street": "bar",
    "city": "baz"
}

لمعالجة هذه المشكلة، يمكنك إعادة تعيين بنية قاعدة البيانات إلى النوع الأصلي أو مسح نتيجة الاستعلام ضوئيًا في الخريطة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3