מה ההבדל בין קפיץ מרובע למעיין רגיל?


תשובה 1:

היי. אני לא בטוח אם זה מה שאתה רוצה, אבל JDBC האביב מוסיף ערך שמספק Spring Framework בשכבה העליונה של JDBC.

  1. הגדר פרמטרים של חיבור פתח את החיבור פרט את ההצהרה הכן והפעל את ההצהרה הגדר את הלולאה כדי לחזור על התוצאות (אם בכלל) בצע את העבודה עבור כל איטרציה עבד כל חריג עסקאות טיפול סגור את החיבור

בעיקרון, אינך צריך לדאוג לניהול וסבל מתקשורת / קוד אינסטלציה ולדאוג גרידא לגבי נתונים ומיפוים לאובייקטים.

האביב משתמש בתבנית התבנית כדי להסתיר את כל הפרטים ברמה נמוכה תוך מתן ווים להארכה להארכה ולעבודה עם JDBC.

כמו כן, קיים ממשק API מוגדר היטב לחריגים של מסדי נתונים, שהוא באמת ידידותי למפתחים בהשוואה להיררכיה חריגה המסופקת על ידי ממשקי API של JDBC ברמה נמוכה.

יתר על כן, הרשה לי להראות לך דוגמה פשוטה באמצעות JDBC:

חיבור חיבור סופי = ds.getConnection ();
נסה {
    הצהרת הצהרה סופית = connection.createStatement ();
    נסה {
        סופי ResultSet resultSet = statement.executeQuery ("בחר מספר (*) מהזמנות");
        נסה {
            resultSet.next ();
            סופי int c = resultSet.getInt (1);
        } סוף כל סוף {
            resultSet.close ();
        }
    } סוף כל סוף {
        הצהרה.סגור ();
    }
} סוף כל סוף {
    חיבור.סגור ();
}

זה הרבה יותר טוב כשמנסים משאבים:

נסה (
        חיבור חיבור = ds.getConnection ();
        הצהרת הצהרה = connection.createStatement ();
        ResultSet resultSet = statement.executeQuery ("בחר מספר (*) מהזמנות");
) {
    resultSet.next ();
    סופי int c = resultSet.getInt (1);
}

כמובן שתוכל לחלץ קוד נפוץ ולהשתמש בשיטת התבנית דפוס עיצוב. ביעילות היית ממציא מחדש את JdbcTemplate:

final int c = new JdbcTemplate (ds) .queryForInt ("בחר מספר (*) מהזמנות");

כמו כן Spring JDBC מספק תרגום חריג (לא עוד בדיקת SQLException והבדלים בין מסדי נתונים / ניבים) ויכולות ORM פשוטות.

מקור: ההבדל בין האביב JDBC לעומת JDBC הרגיל?

מקווה שזה עוזר! בהצלחה!