سؤال

أنا جديد في استخدام JDBC + MySQL.

لدي العديد من القيم 1/0 التي أريد التمسك بها في قاعدة بيانات مع تحضير. عمود الوجهة قليلا (م! = 1). أنا غير واضح بشأن أي من طرق setxxx لاستخدامها. يمكنني العثور على المراجع للبيانات التي تظهر بسهولة كافية ، ولكن كيف تسير الأمور في التخلص مني.

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

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

المحلول

لتعيين أ BIT(M) عمود في MySQL

إلى عن على M==1

setBoolean(int parameterIndex, boolean x)

من جافادوك

يعين المعلمة المحددة على قيمة Java Boolean المعطاة. يقوم برنامج التشغيل بتحويل هذا إلى قيمة بت SQL عندما يرسلها إلى قاعدة البيانات.


إلى عن على M>1

الدعم ل BIT(M) أين M!=1 هو مشكلة مع JDBC كما BIT(M) مطلوب فقط مع SQL-92 "Full" SQL-92 وعدد قليل فقط من DBS يدعم ذلك.

تحقق هنا رسم خرائط SQL و Java أنواع: 8.3.3 بت

ما يلي يعمل بالنسبة لي مع MySQL (على الأقل مع MySQL 5.0.45 و Java 1.6 و MySQL Connector/J 5.0.8)

...
PreparedStatement insert = con.prepareStatement(
    "INSERT INTO bittable (bitcolumn) values (b?)"
);
insert.setString(1,"111000");
...

يستخدم هذا بناء جملة B'11010101010 'الخاص بـ MySQL لتعيين القيمة لأعمدة بت.

نصائح أخرى

يمكنك استخدام Get/SetObject مع صفيف بايت (بايت []). يتم تعبئة 8 بت في كل بايت مع وجود بت أقل أهمية في عنصر الصفيف الأخير.

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