بناء sqlsessionfactory من XML
يعد بناء مثيل SQLSessionFactory من ملف XML بسيطًا للغاية. نوصي هنا باستخدام ملف المورد ضمن ClassPath لتكوينه.
string Resource = "org/mybatis/example/configuration.xml" ؛ reader reader = resources.getResourCeasReader (Resource) ؛ sqlmapper = جديد sqlsessionfactorybuilder (). build (reader) ؛
يحتوي ملف تكوين XML على الإعدادات الأساسية لنظام MyBatis ، بما في ذلك مصدر البيانات للحصول على مثيل اتصال قاعدة البيانات ومدير المعاملات الذي يحدد نطاق المعاملة والتحكم فيها. كمثال:
<؟ <TransactionManager type = "jdbc"/> <dataSource type = "prouded"> <property name = "driver" value = "$ {driver}"/> <property name = "url" value = "$ {url}"/> <property name = "username" value = $ {username} "/> </quortive> </eversionments> <mappers> <mapper resource = "org/mybatis/example/blogmapper.xml"/> </mappers> </iscification>بالطبع ، هناك العديد من الأشياء القابلة للتكوين في ملف تكوين XML ، ويشير المثال أعلاه إلى الجزء الأكثر أهمية.
الحصول على sqlsession من sqlsessionfactory
الآن بعد أن عرفنا بالفعل كيفية الحصول على كائن SQLSessionFactory ، بناءً على نفس الوحي ، يمكننا الحصول على مثيل SQLSession. يحتوي كائن SQLSession بالكامل على جميع الطرق لأداء عمليات SQL باستخدام قاعدة بيانات كخلفية. يمكنك استخدام مثيل SQLSession لتنفيذ بيانات SQL المعينة مباشرة. على سبيل المثال:
جلسة SQLSession = sqlmapper.opensession () ؛ جرب {blog blog = (blog) session.selectone ("org.mybatis.example.blogmapper.selectblog" ، 101) ؛ } أخيرًا {session.close () ؛ }الآن هناك طريقة أبسط. استخدم واجهات تصف المعلمات وبيانات SQL بشكل معقول لإرجاع القيم (مثل blogmapper.class) ، بحيث أصبح الآن رمزًا أبسط وأكثر أمانًا دون عرضة لأخطاء الأسلاك وأخطاء التحويل. على سبيل المثال:
جلسة SQLSession = sqlsessionfactory.opensession () ؛ حاول {blogmapper mapper = session.getMapper (blogmapper.class) ؛ مدونة المدونة = mapper.selectblog (101) ؛ } أخيرًا {session.close () ؛ } استكشاف بيانات SQL المعينة
فيما يلي مثال على بيانات رسم الخرائط XML التي يجب أن تفي بدعوة كائن SQLSession في المثال أعلاه.
<؟ <حدد ID = "selectblog" parametertype = "int" resultType = "blog"> حدد * من المدونة حيث id = #{id} </select> </papper>في مساحة الاسم "com.mybatis.example.blogmapper" ، فإنه يحدد عبارة تعيين يسمى "SelectBlog" ، والذي يسمح لك بالاتصال ببيان التعيين باستخدام الاسم المؤهل تمامًا "org.mybatis.example.blogmapper.selectblog" ، وهو ما نكتبه في المثال التالي.
مدونة المدونة = (المدونة) session.selectone ("org.mybatis.example.blogmapper.selectblog" ، 101) ؛ لكن المكالمات التالية لها المزيد من المزايا:
تتوافق واجهة التعيين مع مساحة الأوامر لتخطيط ملف XML ، وتتوافق طريقة الواجهة مع معرف خريطة SQL المحددة في ملف التعيين XML. ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
blogmapper mapper = session.getMapper (blogmapper.class) ؛ مدونة المدونة = mapper.selectblog (101) ؛
بادئ ذي بدء ، لا يعتمد على النص ، لذلك فهو أكثر أمانًا. ثانياً ، إذا كان لدى IDE وظيفة إكمال الكود ، فيمكنك استخدامها لمعالجة عبارات SQL المعينة. ثالثًا ، ليست هناك حاجة إلى تحويل النوع. في الوقت نفسه ، يمكن الحفاظ على واجهة blogmapper بسيطة ونوع قيمة الإرجاع آمن للغاية (نوع المعلمة آمن أيضًا).