ما هي أفضل طريقة/قالب لإعداد اتصال mysql و jdbc؟

StackOverflow https://stackoverflow.com/questions/819845

  •  03-07-2019
  •  | 
  •  

سؤال

ما هي أفضل طريقة لإعداد الاتصال مع jdbc الخاص بـ mysql؟وتنفيذ بيان بسيط.كيف يتم فعل ذلك؟شكرًا لك.

هل كانت مفيدة؟

المحلول

النموذج الأساسي لـ MySQL/JDBC يسير على النحو التالي:

احصل على الاتصال:

Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:mysql://databaseName");

نفذ البيان:

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * from tableName");
while (rs.next()) {
    System.out.println(rs.getString(1));
}

إغلاق البيان والاتصال:

rs.close();
stmt.close();
conn.close();

تحتاج فقط إلى التأكد من تثبيت برنامج التشغيل و/أو في CLASSPATH الخاص بك.

نصائح أخرى

وهذا هو القرن الحادي والعشرين - استخدام JPA (ORM) التنفيذ. ولكن إذا كنت تصر على الذهاب إلى المعدن (في خطر من الأصوات أسفل) -

وهناك طرق عديدة للحصول على اتصال JDBC من بعض السائق. باستخدام الانعكاس مع اسم فئة ماثلة هو الأكثر شيوعا وربما معظم المخ التالفة. إذا كنت تريد الذهاب لباستخدام الأسلاك اسم فئة، قد وكذلك الحصول على فوائد من التعليمات البرمجية العادي (المصيد مترجم الأخطاء المطبعية، لا استثناءات غريبة للتعامل مع وأسهل للقراءة، تبعيات صريحة، أفضل أداة دعم، الخ).

وتحصل أيضا في أن هذه العادة من ازالة الموارد بأمان.

وهكذا:

public static void main(String[] args) throws SQLException {
     Driver driver = new com.mysql.jdbc.Driver();
     Connection connection = driver.connect(
         "jdbc:mysql://mydatabase", 
         new java.util.Properties() {{
              put("user", "fred");
         }}
     );
     try {
         PreparedStatement statement = connection.prepareStatement(
             "SELECT insideLeg FROM user WHERE name=?"
         );
         try {
             statement.setString(1, "jim");
             ResultSet results = statement.executeQuery();
             try {
                 if (results.next() {
                     System.out.println("= "+results.getLong(1));
                 } else {
                     System.out.println("Missing.");
                 } 
             } finally {
                 results.close();
             }
         } finally {
             statement.close();
         }
     } finally {
         connection.close();
     }
}

ما هي فوضى! وأنها لا حتى استخدام المعاملات حتى الان. نعم، استخدم ORM. انهم محترمة جدا في هذه الأيام.

ولن تحتاج إلى القيام بكل ما في كل بيان واحد. كنت لا تريد أن تذهب حول خلق السائقين instantiating في كل مرة. ولا سيما تنفيذ نحو لغة غير مفيدة.

وذلك يعتمد على حالتك.

إذا كنت ببساطة الحاجة الى تنفيذ بعض الاستفسارات من تطبيق قائم بذاته ثم يجب عليك استخدام اتصال واحد مثل:

Class.forName ("yourDriverName");

Connection cn = DriverManager.getConnection ("db url");
Statement st = cn.createStatement ();
ResultSet rs = st.executeQuery ("select * from foo");
while (rs.next()) {
  doSmth ();
} 
rs.close ();
st.close ();
cn.close ();

ولكن إذا كنت تقوم بتطوير تطبيق حقيقي (وخاصة شبكة الإنترنت تطبيق) ثم استخدام في مصدر البيانات. قراءة دليل من DB وملقم ويب كيفية تكوين مصدر البيانات. مصدر البيانات يتيح لك استخدام اتصال تجميع - انها سوف nessecary لرفع مستوى الأداء

وتكوين مصدر البيانات ليست عملية صعبة.

وهنا وثائق الشمس ل إنشاء اتصال JDBC.من هناك يكون من السهل الوصول إلى كائن البيان وتشغيل بعض SQL البسيطة.

بالنسبة لأنظمة مستوى الإنتاج، قد ترغب أيضًا في إنشاء ملف تجمع الاتصال.

وإطار التجريد JDBC استخدام إطار الربيع - كل ما عليك القيام به هو إنشاء ملف XML السياق، واستخدام فئة قالب JDBC. فقط بضعة أسطر من XML + كود جافا سوف تحصل على الذهاب. ميزة هو الحفاظ تفاصيل الاتصال الخاصة بك من جافا المترجمة. نرى: http://www.springbyexample.org/examples/simple-spring- جدبك-template.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top