sqlsessionTemplate
SQLSessionTemplate هو جوهر MyBatis-Spring. هذا الفصل مسؤول عن إدارة MyBatis 'SQLSession ، واصفا طريقة SQL MyBatis ، وترجمة الاستثناءات. SQLSessionTemplate آمن مؤشر الترابط ويمكن مشاركته واستخدامه من قبل DAOs متعددة.
عند استدعاء طرق SQL ، فإنه يحتوي على الطريقة التي يتم إرجاعها من طريقة Mapper getMapper (). سيضمن SQLSessionTemplate أن SQLSession المستخدمة مرتبطة بالمعاملة الربيعية الحالية. بالإضافة إلى ذلك ، فإنه يدير دورة حياة الجلسة ، بما في ذلك عمليات الإغلاق الضرورية أو الالتزام أو التراجع.
SQLSessionTemplate ينفذ sqlsession ، مما يعني أنه من الضروري ببساطة استبدال sqlsession من mybatis.
عادةً ما يتم استخدام SQLSessionTemplate لاستبدال تنفيذ MyBatis الافتراضي لـ DefaultSqlSession لأنه لا يمكنه المشاركة في معاملات الربيع أو حقنها لأنها تعاني من آثار الخيط. يمكن أن يسبب التحول بين فئتين في نفس التطبيق مشاكل في اتساق البيانات.
يمكن إنشاء كائن SQLSessionTemplate باستخدام SQLSessionFactory كمعلمة لبناء الطريقة.
<bean id = "sqlsession"> <constructor-arg index = "0" ref = "sqlsessionfactory"/> </bean>
يمكن الآن حقن هذه الفول مباشرة في فول داو. تحتاج إلى إضافة خاصية SQLSession إلى الفول ، مثل الكود التالي:
الفئة العامة userDaoImpl تنفذ userdao {private sqlsession sqlsession ؛ setSqlSession public (sqlsession sqlsession) {this.sqlsession = sqlsession ؛ } المستخدم العام getUser (String userId) {return (user) sqlsession.selectone ("org.mybatis.spring.sample.mapper.usermapper.getuser" ، userId) ؛ }}حقن sqlsessionTemplate على النحو التالي:
<bean id = "userdao"> <property name = "sqlsession" ref = "sqlsession"/> </ban>
sqlsessiondaosupport
SQLSessionDaoSupport هو فئة دعم مجردة تستخدم لتزويدك بـ SQLSession. استدعاء طريقة getSqlSession () ستحصل على sqlsessionTemplate ، والتي يمكن بعد ذلك استخدامها لتنفيذ طريقة SQL ، مثل هذا:
الفئة العامة userDaoImpl يمتد sqlsessiondaosupport تنفذ userdao {المستخدم العام getUser (string userid) {return (user) getSqlSession (). }} عادةً ما يكون MapPerFactoryBean هو الخيار الأول لهذه الفئة لأنه لا يتطلب رمزًا إضافيًا. ومع ذلك ، إذا كنت بحاجة إلى القيام بأعمال أخرى غير Mybatis في DAO أو تحتاج إلى فصول محددة ، فإن هذه الفئة مفيدة. يتطلب sqlsessiondaosupport sqlsessionfactory أو sqlsessionTemplate الممتلكات. يتم إعداد هذه بشكل صريح أو تجميعها تلقائيًا بحلول الربيع. إذا تم تعيين كلاهما ، يتم تجاهل SQLSessionFactory.
افترض أن الفئة usermapperimpl هي فئة فرعية من sqlsessiondaosupport ، يمكن تكوينها على النحو التالي في الربيع:
<bean id = "usermapper"> <property name = "sqlsessionfactory" ref = "sqlsessionfactory"/> </bean>