JDBC Spring Dao
Tujuan utama dari dukungan DAO (Objek Akses Data) yang disediakan oleh Spring adalah untuk memfasilitasi penggunaan teknologi akses data yang berbeda dengan cara standar, seperti JDBC, Hibernate atau JDO. Ini tidak hanya memungkinkan Anda untuk dengan mudah beralih di antara teknologi kegigihan ini, tetapi juga memungkinkan Anda untuk tidak harus mempertimbangkan untuk menangani pengecualian tertentu dalam berbagai teknologi saat pengkodean.
Untuk memfasilitasi penggunaan berbagai teknologi akses data seperti JDBC, JDO dan Hibernate dengan cara yang konsisten, Spring menyediakan kelas DAO abstrak untuk Anda perluas. Kelas -kelas abstrak ini menyediakan beberapa metode yang melaluinya Anda dapat memperoleh sumber data dan informasi konfigurasi lainnya yang terkait dengan teknologi akses data yang saat ini Anda gunakan.
Kelas Dukungan DAO:
JDBCDAOSUPPORT - Kelas dasar untuk objek akses data JDBC. DataSource diperlukan, dan jdbctemplate disediakan untuk subkelas.
HibernedAoSupport - Kelas dasar untuk objek akses data hibernasi. Diperlukan sesi sesi, dan hibernatetemplate disediakan untuk subkelas. Anda juga dapat memilih untuk diinisialisasi secara langsung dengan menyediakan hibernatetemplate, sehingga pengaturan yang terakhir dapat digunakan kembali, seperti sessionfactory, mode flush, penerjemah pengecualian, dll.
JDODAOSUPPORT - Kelas dasar untuk objek akses data JDO. PersistenceManagerFactory diperlukan untuk mengatur dan menyediakan jdotemplate untuk subkelas.
JPADAOSUPPORT - Kelas dasar untuk objek akses data JPA. Diperlukan EntityManagerFactory, dan JPAtemplate disediakan untuk subkelas.
Bagian ini terutama membahas dukungan Spring untuk JDBCDAOSupport.
Inilah contohnya:
Tabel drop jika ada pengguna; /*================================================================*/*Tabel: Pengguna*/ /*============================================================.
Pengguna kelas publik {private integer ID; nama string pribadi; usia bilangan bulat pribadi; Integer publik getId () {return id; } public void setid (integer id) {this.id = id; } public string getName () {return name; } public void setName (name string) {this.name = name; } getage integer publik () {usia kembali; } public void setage (usia integer) {this.age = usia; }} /** * Dibuat oleh IntelliJ Ide. <br> * <b> pengguna </b>: leizhimin <br> * <b> Tanggal </b>: 2008-4-22 15:34:36 <br> * <b> Catatan </b>: antarmuka DAO */antarmuka publik IUSERDAO {void publik Sisipan (Pengguna); Pengguna Publik Temukan (ID Integer); } import javax.sql.datasource; impor java.sql.connection; impor java.sql.sqlexception; /*** Dibuat oleh IntelliJ Idea. <br>* <b> Catatan </b>: Base Class DAO, Memberikan Injeksi Sumber Data*/Kelas Publik Basis Demio {Private DataSource DataSource; DataSource publik getDataSource () {return DataSource; } public void setDataSource (DataSource DataSource) {this.dataSource = DataSource; } koneksi publik getConnection () {connection conn = null; coba {conn = DataSource.getConnection (); } catch (sqlexception e) {e.printstacktrace (); } return conn; }}/** * Dibuat oleh IntelliJ Idea. <br> * <b> pengguna </b>: leizhimin <br> * <b> Tanggal </b>: 2008-4-22 15:36:04 <br> * <b> Catatan </b>: implementasi DAO {Public Class Public Extends Extends Berbasis IUSERDAO {Public Class Public. return jdbctemplate baru (getDataSource ()); } public void insert (pengguna pengguna) {string name = user.getName (); int usia = user.getage (). intvalue (); // jdbctemplate.update ("masukkan ke pengguna (nama, usia)" // + "nilai ('" + nama + "'," + usia + ")"); String sql = "masukkan ke dalam nilai pengguna (nama, usia) (?,?)"; getjdbctemplate (). update (sql, objek baru [] {name, usia}); } Pengguna Public Find (Integer ID) {daftar baris = getjdbctemplate (). QueryForList ("Select * From User Where ID =" + ID.IntValue ()); Iterator it = rows.iterator (); if (it.hasnext ()) {peta usermap = (peta) it.next (); Integer i = bilangan bulat baru (usermap.get ("id"). Tostring ()); String name = userMap.get ("name"). ToString (); Bilangan bulat usia = bilangan bulat baru (usermap.get ("usia"). Tostring ()); Pengguna pengguna = pengguna baru (); user.setid (i); user.setname (name); user.setage (usia); Pengguna Kembali; } return null; }}<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="dataSource" singleton="true"> <property name="driverClassName"> <value> com.mysql.jdbc.driver </ value> </property> <name properti = "url"> <value> jdbc: mysql: // localhost: 3306/springdb </ value> </properti name = "USERNAME"> <value> root </value> </value> </properti name = "name =" leize "> <value> root </value> </value> </property name =" leize "<value> <value> root </value> </value> </property name =" name = "leize" </bean> <bean id = "bedandedao" abstrak = "true"> <name properti = "datasource"> <ref bean = "DataSource"/> </propert> </tact> <bean id = "userdao" Parent = "berbasisao"> </bean> </bean>
impor org.springframework.context.applicationContext; impor org.springframework.context.support.filesystemxmlapplicationContext; /** * Dibuat oleh IntelliJ Idea. <br> * <b> pengguna </b>: leizhimin <br> * <b> Tanggal </b>: 2008-4-22 15:59:18 <br> * <b> Catatan </b>: Kelas Tes, Klien */Kelas Publik Springdaodemo {Public Static Main Main (String] {Public Class = Public Class = Public Static Main (String [] {Public Class {Public Static Main (String) {public class {public class {public class {public class {public static static (string) {Public FileSyStemXMLapPlicationContext ("D: //_Spring//src//com/lavasoft//springnote//ch05_jdbc03_temp//bean-jdbc-temp.xml"); Pengguna pengguna = pengguna baru (); user.setname ("hahhah"); user.setage (bilangan bulat baru (22)); Iuserdao userdao = (iuserdao) context.getBean ("userdao"); userdao.insert (pengguna); user = userdao.find (bilangan bulat baru (1)); System.out.println ("Nama:" + user.getName ()); }}
Hasil Menjalankan:
LOG4J: Peringatkan tidak ada appenders yang dapat ditemukan untuk Logger (org.springframework.core.collectionFactory). LOG4J: Peringatkan Harap inisialisasi sistem log4j dengan benar. Nama: proses jdbctemplate selesai dengan kode keluar 0
Hibernate Spring Dao
HibernedAoSupport - Kelas dasar untuk objek akses data hibernasi. Diperlukan sesi sesi, dan hibernatetemplate disediakan untuk subkelas. Anda juga dapat memilih untuk diinisialisasi secara langsung dengan menyediakan hibernatetemplate, sehingga pengaturan yang terakhir dapat digunakan kembali, seperti sessionfactory, mode flush, penerjemah pengecualian, dll.
Bagian ini terutama membahas dukungan Spring untuk HibernateTemplate.
Inilah contohnya:
Tabel drop jika ada pengguna; /*================================================================*/*Tabel: Pengguna*/ /*============================================================.
/*** Dibuat oleh IntelliJ Idea. <br>* <b> Catatan </b>: Hiberante Entity Class*/Public Class User {Private Integer ID; nama string pribadi; usia bilangan bulat pribadi; Integer publik getId () {return id; } public void setid (integer id) {this.id = id; } public string getName () {return name; } public void setName (name string) {this.name = name; } getage integer publik () {usia kembali; } public void setage (usia integer) {this.age = usia; }}<? Xml Version = "1.0" Encoding = "UTF-8"?> <! Doctype Hibernate-Mapping Public "-// Hibernate/Hibernate Mapping DTD 3.0 // en" "http://hibernate.sourceforge.net/hibernate-papping-3.0 name = "com.lavasoft.springnote.ch06_hbm_02detx.user" Table = "user"> <id name = "id" column = "id"> <generator/> </d> <name properti = "name" column = "name"/> <properti nama = "usia" = "usia"/</class> </name "/<name =" era "usia" = "usia"/> </class> </name "/> <properti =" usia "=" usia "/> </class> </name"/> <properti nama = "usia" = "usia"/</class>
/** * Dibuat oleh IntelliJ Ide. <br> * <b> pengguna </b>: leizhimin <br> * <b> Tanggal </b>: 2008-4-23 15:37:43 <br> * <b> Catatan </b>: antarmuka DAO */antarmuka publik IUSERDAO {void publik Sisipan (Pengguna); Pengguna Publik Temukan (ID Integer); } impor org.hibernate.SessionFactory; impor org.springframework.orm.hibernate3.hibernateTemplate; /** * Dibuat oleh IntelliJ Idea. <br> * <b> pengguna </b>: leizhimin <br> * <b> Tanggal </b>: 2008-4-23 15:15:55 <br> * <b> Catatan </b>: implementasi DAO */kelas publik Userdao mengimplementasikan iuserdao {private hy hinger hherat. public void setSessionFactory (sessionFactory sessionFactory) {this.hibernateTemplate = hibernateTemplate baru (sessionFactory); } public void insert (pengguna pengguna) {hibernateTemplate.save (user); System.out.println ("ID objek pengguna yang disimpan:"+user.getId ()); } Pengguna Public Find (Integer ID) {user user = (user) hibernateTemplate.get (user.class, id); Pengguna Kembali; }}<? Xml Version = "1.0" encoding = "UTF-8"?> <! Doctype Bean Public "-// Spring/Dtd Bean/En" "http://www.springframework.org/dtd/spring-eans.dtd"> <beans> <bean id = "DATASOUCE" "DATASUCE"> "DATASUME"> <beans> <bean id = "DATASOUCE" "DATASUCE =" "DATASUME"> <beans> <bean iD = "dATasOurce" "DATASUCE" " <value> com.mysql.jdbc.driver </ value> </property> <name properti = "url"> <value> jdbc: mysql: // localhost: 3306/springdb </ value> </properti name = "USERNAME"> <value> root </value> </value> </properti name = "name =" leize "> <value> root </value> </value> </property name =" leize "<value> <value> root </value> </value> </property name =" name = "leize" </bean> <bean id = "sessionfactory" dash-method = "tutup"> <name properti = "datasource"> <ref bean = "datasource"/> </prop Property> <Properti name = "MappingResources"> <cist> <value> com/lavasoft/springnote/ch06_hbm_hbm_02 <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> </props> </property> </bean> <bean id="userDAO"> <property name="sessionFactory"> <ref bean="sessionFactory"/> </property> </beans>
impor org.springframework.context.applicationContext; impor org.springframework.context.support.filesystemxmlapplicationContext; /*** Dibuat oleh IntelliJ Idea. <br>* <b> Catatan </b>: kelas tes, klien*/kelas publik springhiberatedemo {public static void main (string [] args) {applicationContext context = new FileSyStemXMLappLicationContext ("D: //_Spring//src//com/lavasoft//springnote//ch06_hbm_02protx//bean-hbm_tx.xml"); // buat objek dao iuserdao userdao = (iuserdao) context.getBean ("userdao"); Pengguna pengguna = pengguna baru (); user.setname ("Caterpillar"); user.setage (bilangan bulat baru (30)); userdao.insert (pengguna); user = userdao.find (bilangan bulat baru (1)); System.out.println ("Nama:" + user.getName ()); }}
Hasil Menjalankan:
LOG4J: Peringatkan tidak ada appenders yang dapat ditemukan untuk Logger (org.springframework.core.collectionFactory). LOG4J: Peringatkan Harap inisialisasi sistem log4j dengan benar. ID dari Objek Pengguna yang Disimpan: 18 Nama: Proses JDBCtemplate selesai dengan kode keluar 0