الربيع داو JDBC
الغرض الرئيسي من دعم DAO (كائن الوصول إلى البيانات) الذي يوفره الربيع هو تسهيل استخدام تقنيات الوصول إلى البيانات المختلفة بطريقة قياسية ، مثل JDBC أو Hibernate أو JDO. لا يتيح لك فقط التبديل بين تقنيات الثبات هذه ، ولكن أيضًا يتيح لك عدم الاضطرار إلى التفكير في التعامل مع استثناءات محددة في التقنيات المختلفة عند الترميز.
لتسهيل استخدام تقنيات الوصول إلى البيانات المختلفة مثل JDBC و JDO و Hibernate بطريقة متسقة ، يوفر Spring فئة DAO مجردة لك لتمديدها. توفر هذه الفئات المجردة بعض الطرق التي يمكنك من خلالها الحصول على مصادر البيانات ومعلومات التكوين الأخرى المتعلقة بتقنية الوصول إلى البيانات التي تستخدمها حاليًا.
فئة دعم داو:
JDBCDAOSUPPORT - الفئة الأساسية لكائنات الوصول إلى بيانات JDBC. مطلوب مصدر بيانات ، ويتم توفير JDBCtemplate للفئة الفرعية.
HibernatedaOsupport - الفئة الأساسية لكائنات الوصول إلى بيانات السبات. مطلوب SessionFactory ، ويتم توفير hibernatetemplate للفئة الفرعية. يمكنك أيضًا اختيار التهيئة مباشرة من خلال توفير HibernateMeMplate ، بحيث يمكن إعادة استخدام الإعدادات الأخيرة ، مثل SessionFactory ، وضع Flush ، مترجم استثناء ، إلخ.
JDODAOSUPPORT - الفئة الأساسية لكائنات الوصول إلى بيانات JDO. مطلوب persistencemanagerfactory لإعداد وتوفير jdotemplate للمسارات الفرعية.
JPADAOSUPPORT - الفئة الأساسية لكائنات الوصول إلى بيانات JPA. مطلوب entityManagerFactory ، ويتم توفير JPatemplate للمسارات الفرعية.
يناقش هذا القسم أساسًا دعم الربيع لـ JDBCDAOSUPPORT.
هنا مثال:
جدول إسقاط إذا كان مستخدمًا ؛ /*=============================================================*///* /*==============================================================================================================) ؛
مستخدم الفئة العامة {private integer id ؛ اسم السلسلة الخاصة ؛ عصر عدد صحيح خاص ؛ عدد صحيح عام getId () {معرف الإرجاع ؛ } public void setId (integer id) {this.id = id ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } integer getAge () {return Age ؛ } public void setage (integer age) {this.age = age ؛ }} /** * تم إنشاؤه بواسطة intellij Idea. <br> * <b> المستخدم </b>: Leizhimin <br> * <b> التاريخ </b>: 2008-4-22 15:34:36 <br> * <b> ملاحظة </b>: Dao Interface */public Iuserdao {public void insert (user user user) ؛ يجد المستخدم العام (معرف INTEGER) ؛ } استيراد javax.sql.datasource ؛ استيراد java.sql.connection ؛ استيراد java.sql.sqlexception ؛ /*** تم إنشاؤه بواسطة IDEAMEJ. بيانات البيانات العامة getDataSource () {return dataSource ؛ } public void setDataSource (dataSource dataSource) {this.datasource = dataSource ؛ } الاتصال العام getConnection () {connection conn = null ؛ حاول {conn = datasource.getConnection () ؛ } catch (sqlexception e) {E.PrintStackTrace () ؛ } return conn ؛ }}/** * تم إنشاؤه بواسطة intellij Idea. <br> * <b> المستخدم </b>: Leizhimin <br> * <b> التاريخ </b>: 2008-4-22 15:36:04 <Br> jdbctemplate (getDatasource ()) ؛ } public void insert (user user) {string name = user.getName () ؛ int age = user.getage (). Intvalue () ؛ // jdbctemplate.update ("insert in user (name ، age)" // + "القيم ('" + name + "،" + age + ")") ؛ String sql = "insert في قيم المستخدم (الاسم ، العمر) (؟ ،؟)" ؛ getJDBCtemplate (). Update (SQL ، Object [] {name ، Age}) ؛ } مستخدم عام Find (integer id) {list rows = getjdbctemplate (). QueryForList ("SELECT * from user where id =" + id.intvalue ()) ؛ iterator it = rows.iterator () ؛ if (it.hasnext ()) {map usermap = (map) it.next () ؛ عدد صحيح i = عدد صحيح جديد (usermap.get ("id"). toString ()) ؛ اسم السلسلة = usermap.get ("name"). toString () ؛ العمر الصحيح = عدد صحيح جديد (usermap.get ("العمر"). toString ()) ؛ مستخدم المستخدم = مستخدم جديد () ؛ user.setId (i) ؛ user.setName (name) ؛ user.setage (العمر) ؛ إرجاع المستخدم ؛ } إرجاع فارغ ؛ }}<؟ <Value> com.mysql.jdbc.driver </value> </sprention> <property name = "url"> <value> jdbc: mysql: // localhost: 3306/springdb </value> </property> <spertar <bean id = "invalao" ustrigtion = "true"> <property name = "dataSource"> <ref bean = "datasource"/> </property> </bean> <bean id = "userdao" parent = "ravenao"> </bean> </bans>
استيراد org.springframework.context.applicationContext ؛ استيراد org.springframework.context.support.filesystemxmlapplicationContext ؛ /** * تم إنشاؤه بواسطة intellij Idea. <br> * <b> المستخدم </b>: Leizhimin <br> * <b> التاريخ </b>: 2008-4-22 15:59:18 <br> FileSystemxMlAppPlicationContext ("d: //_spring//src//com/lavasoft//springnote//ch05_jdbc03_temp//bean-jdbc-temp.xml") ؛ مستخدم المستخدم = مستخدم جديد () ؛ user.setName ("HAHHAH") ؛ user.setage (عدد صحيح جديد (22)) ؛ iuserdao userdao = (iuserdao) context.getBean ("userDao") ؛ userDao.insert (user) ؛ user = userDao.find (عدد صحيح جديد (1)) ؛ System.out.println ("name:" + user.getName ()) ؛ }}
نتائج التشغيل:
log4j: تحذير لا يمكن العثور على التذييلات للمسجل (org.springframework.core.collectionFactory). log4j: تحذير يرجى تهيئة نظام log4j بشكل صحيح. الاسم: عملية jdbctemplate الانتهاء مع رمز الخروج 0
الربيع داو السبات
HibernatedaOsupport - الفئة الأساسية لكائنات الوصول إلى بيانات السبات. مطلوب SessionFactory ، ويتم توفير hibernatetemplate للفئة الفرعية. يمكنك أيضًا اختيار التهيئة مباشرة من خلال توفير HibernateMeMplate ، بحيث يمكن إعادة استخدام الإعدادات الأخيرة ، مثل SessionFactory ، وضع Flush ، مترجم استثناء ، إلخ.
يناقش هذا القسم أساسًا دعم Spring لـ HibernateTemplate.
هنا مثال:
جدول إسقاط إذا كان مستخدمًا ؛ /*=============================================================*///* /*==============================================================================================================) ؛
/*** تم إنشاؤه بواسطة intellij Idea. <br>* <b> ملاحظة </b>: فئة Hiberante Class*/Public Class user {Private Integer ID ؛ اسم السلسلة الخاصة ؛ عصر عدد صحيح خاص ؛ عدد صحيح عام getId () {معرف الإرجاع ؛ } public void setId (integer id) {this.id = id ؛ } السلسلة العامة getName () {return name ؛ } public void setName (اسم السلسلة) {this.name = name ؛ } integer getAge () {return Age ؛ } public void setage (integer age) {this.age = age ؛ }}<؟ name = "com.lavasoft.springnote.ch06_hbm_02detx.user" table = "user"> <id name = "ID"
/** * تم إنشاؤه بواسطة intellij Idea. <br> * <b> المستخدم </b>: Leizhimin <br> * <b> التاريخ </b>: 2008-4-23 15:37:43 <br> * <b> ملاحظة </b>: Dao Interface */public Iuserdao {public void insert (user user user) ؛ يجد المستخدم العام (معرف INTEGER) ؛ } استيراد org.hibernate.sessionFactory ؛ استيراد org.springframework.orm.hibernate3.hibernateTemplate ؛ /** * تم إنشاؤه بواسطة intellij Idea. <br> * <b> المستخدم </b>: Leizhimin <br> * <b> Date </b>: 2008-4-23 15:15:55 <Br> * <b> ملاحظة </b>: Dao Application */public class userdao passerdao setSessionFactory public void (SessionFactory SessionFactory) {this.hibernateTemplate = new hibernatetemplate (SessionFactory) ؛ } public void insert (user user) {hibernatetemplate.save (user) ؛ System.out.println ("معرف كائن المستخدم المحفوظ:"+user.getId ()) ؛ } مستخدم عام Find (integer id) {user user = (user) hibernatetemplate.get (user.class ، id) ؛ إرجاع المستخدم ؛ }}<؟ <Value> com.mysql.jdbc.driver </value> </sprention> <property name = "url"> <value> jdbc: mysql: // localhost: 3306/springdb </value> </property> <spertar <bean id = "sessionfactory" تدمير method = "close"> <property name = "dataSource"> <ref bean = "datasource"/> </sprement> <property name = "mappingResources"> <list> <value> com/lavasoft/springnote/ch06_hbm_02protx/user.hbm. name = "hibernateProperties"> <bors> <props key = "hibernate.dialect"> org.hibernate.dialect.mysqldialect </prop> </props> </spleneration> </buls> <bean id = "userdao"
استيراد org.springframework.context.applicationContext ؛ استيراد org.springframework.context.support.filesystemxmlapplicationContext ؛ /*** تم إنشاؤه بواسطة intellij Idea. <br>* <b> ملاحظة </b>: فئة الاختبار ، العميل*/الفئة العامة springHibernatedEmo {public static void main (string [] args) {ApplicationContxt context = new FileSystemxMlAppPlicationContext ("d: //_spring//src//com/lavasoft//springnote//ch06_hbm_02protx//bean-hbm_tx.xml") ؛ // إنشاء كائن dao iuserdao userdao = (iuserdao) context.getBean ("userDao") ؛ مستخدم المستخدم = مستخدم جديد () ؛ user.setName ("caterpillar") ؛ user.setage (عدد صحيح جديد (30)) ؛ userDao.insert (user) ؛ user = userDao.find (عدد صحيح جديد (1)) ؛ System.out.println ("name:" + user.getName ()) ؛ }}
نتائج التشغيل:
log4j: تحذير لا يمكن العثور على التذييلات للمسجل (org.springframework.core.collectionFactory). log4j: تحذير يرجى تهيئة نظام log4j بشكل صحيح. معرّف كائن المستخدم المحفوظ: 18 الاسم: عملية JDBCtemplate انتهى برمز الخروج 0