Весна Дао JDBC
Основная цель поддержки DAO (объект доступа данных), предоставленная Spring, состоит в том, чтобы облегчить использование различных технологий доступа к данным стандартным способом, таких как JDBC, Hibernate или JDO. Это не только позволяет вам легко переключаться между этими технологиями постоянства, но также позволяет вам не придется рассматривать вопрос о конкретных исключениях в различных технологиях при кодировании.
Чтобы облегчить использование различных технологий доступа к данным, таких как JDBC, JDO и Hibernate, последовательно, Spring предоставляет для вас абстрактный класс DAO. Эти абстрактные классы предоставляют некоторые методы, с помощью которых вы можете получить источники данных и другую информацию о конфигурации, связанную с технологией доступа к данным, которую вы используете в настоящее время.
Класс поддержки DAO:
Jdbcdaosupport - базовый класс для объектов доступа к данным JDBC. Требуется источник данных, и для подкласса предусмотрена JDBCTEMPLATE.
Hibernatedaosupport - базовый класс для объектов доступа к данным Hibernate. Требуется SessionFactory, и для подкласса предусмотрена HibernateTemplate. Вы также можете инициализировать напрямую, предоставляя HibernateTemplate, чтобы последние настройки могли быть использованы повторно, например, SessionFactory, режим промывки, переводчик исключений и т. Д.
Jdodaosupport - базовый класс для объектов доступа к данным JDO. Для настройки и предоставления Jdotemplate для подклассов требуется PersistenceManagerFactory.
JpadaoSupport - базовый класс для объектов доступа к данным JPA. Требуется EntityManagerFactory, и JPatemplate предоставляется для подклассов.
В этом разделе в основном обсуждается поддержка весны JDBCDAOSUpport.
Вот пример:
сбросить таблицу, если существует пользователь; /*==================================================================== /*============================================================================================
Пользователь открытого класса {Private Integer ID; Приватное название строки; частный целый возраст; public integer getId () {return id; } public void setId (Integer id) {this.id = id; } public String getName () {return name; } public void setName (string name) {this.name = name; } public integer getage () {return Age; } public void setage (целый возраст) {this.age = age; }} /** * Создано Intellij Idea. <br> * <b> Пользователь </b>: Leizhimin <br> * <b> дата </b>: 2008-4-22 15:34:36 <br> * <b> note </b>: dao interface */public interface iuserdao {public void insert (пользователь пользователя); общедоступный пользователь (INTEGER ID); } импортировать javax.sql.datasource; Импорт java.sql.connection; Импорт java.sql.sqlexception; /*** Создано Intellij Idea. <br>* <b> note </b>: базовый класс DAO, предоставление введения источника данных*/public Class Fasdayao {Private DataSource DataSource; public DataSource getDataSource () {return DataSource; } public void setDataSource (DataSource DataSource) {this.Datasource = dataSource; } public Connection getConnection () {connection conn = null; try {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> * <b> note </b>: dao repalation */public userdao extends gate gatehemportate gatehemportate gatehemporte Jdbctemplate (getDataSource ()); } public void insert (пользователь пользователя) {string name = user.getName (); int age = user.getage (). intvalue (); // jdbctemplate.update ("вставьте в пользователь (имя, возраст)" // + "values ('" + name + "'," + age + ")"); String sql = "вставьте в пользовательские (имя, возраст) значения (?,?)"; getJdbctemplate (). Update (sql, новый объект [] {name, age}); } public user find (integer id) {list rows = getJdbctemplate (). QueryForlist ("select * из пользователя, где id =" + id.intvalue ()); Итератор IT = Rows.iterator (); if (it.hasnext ()) {map usermap = (map) it.next (); Integer i = New Integer (usermap.get ("id"). ToString ()); String name = usermap.get ("name"). ToString (); Integer Age = New Integer (usermap.get ("age"). ToString ()); Пользователь пользователь = новый пользователь (); user.setid (i); user.setname (имя); user.setage (возраст); вернуть пользователь; } 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"> vameLame ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> ">"> «Престов»> nameaMe dataMeAme vomeMAME = "rAve"> «Истинность»> «Истинность»> «Истинное значение»> «Истинное значение»> «Истинное значение»> «Истинное значение». <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/springdb</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>leizhimin</value> </property> </bean> <bean id = "foundao" Abstract = "true"> <name = "dataSource"> <ref bean = "dataSource"/> </properation> </bean> <bean id = "userdao" parent = "basedao"> </bean> </beans>
Импорт org.springframework.context.applicationContext; Import org.springframework.context.support.filesystemxmlapplicationContext; /** * Создано Intellij Idea. <br> * <b> пользователь </b>: leizhimin <br> * <b> дата </b>: 2008-4-22 15:59:18 <br> * <b> note </b>: тестовый класс, клиент */public class springdaodemo {public static void main (string [] args) {applicateContext = nevectextextext. FileSystemxmlapplicationContext ("d: //_spring//src//com/lavasoft//springnote//ch05_jdbc03_temp//bean-jdbc-temp.xml"); Пользователь пользователь = новый пользователь (); user.setname ("хаххах"); user.setage (новое целое число (22)); Iuserdao userdao = (iuserdao) context.getbean ("userdao"); userdao.insert (пользователь); user = userdao.find (новое целое число (1)); System.out.println ("name:" + user.getName ()); }}
Результаты работы:
log4j: предупреждают, что приложения не могут быть найдены для logger (org.springframework.core.collectionFactory). log4j: предупреждайте, пожалуйста, инициализируйте систему log4j должным образом. Имя: процесс jdbctemplate завершен с кодом выхода 0
Весна Дао Спеценат
Hibernatedaosupport - базовый класс для объектов доступа к данным Hibernate. Требуется SessionFactory, и для подкласса предусмотрена HibernateTemplate. Вы также можете инициализировать напрямую, предоставляя HibernateTemplate, чтобы последние настройки могли быть использованы повторно, например, SessionFactory, режим промывки, переводчик исключений и т. Д.
В этом разделе в основном обсуждается поддержка весны HibernateTemplate.
Вот пример:
сбросить таблицу, если существует пользователь; /*==================================================================== /*============================================================================================
/*** Создано IntelliJ Idea. <br>* <b> note </b>: hiberante entity class*/public class user {private Integer id; Приватное название строки; частный целый возраст; public integer getId () {return id; } public void setId (Integer id) {this.id = id; } public String getName () {return name; } public void setName (string name) {this.name = name; } public integer getage () {return Age; } public void setage (целый возраст) {this.age = age; }}<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Hibernate Mapping Public "-// Hibernate/Hibernate Mapping Dtd 3.0 // en" "http://hibernate.sourceforge.net/hibernate mapping-3.0.dtd"> <hibernate.mapping> <classapperge.net/hibernate-3.0.dtd " name = "com.lavasoft.springnote.ch06_hbm_02detx.user" table = "user"> <id name = "id" column = "id"> <generator/> </id> <name = "name" column "/name"/> <property name = "age" column = "age"/> </class> </hibernate-mappant>
/** * Создано Intellij Idea. <br> * <b> пользователь </b>: leizhimin <br> * <b> дата </b>: 2008-4-23 15:37:43 <br> * <b> note </b>: dao interface */public interface iuserdao {public void insert (пользователь пользователя); общедоступный пользователь (INTEGER ID); } import org.hibernate.sessionFactory; Импорт org.springframework.orm.hibernate3.hibernateTemplate; /** * Created by IntelliJ IDEA.<br> * <b>User</b>: leizhimin<br> * <b>Date</b>: 2008-4-23 15:15:55<br> * <b>Note</b>: DAO implementation*/ public class UserDAO implements IUserDAO { private HibernateTemplate hibernateTemplate; public void setSessionFactory (SessionFactory SessionFactory) {this.hiberNateTemplate = new HibernateTemplate (SessionFactory); } public void insert (пользователь пользователя) {hibernateTemplate.save (user); System.out.println («Идентификатор сохраненного пользовательского объекта:«+user.getid ()); } public user find (integer id) {user user = (user) hibernateTemplate.get (user.class, id); вернуть пользователь; }}<? 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"> hiv.1-name ">" rimcle = ">" rimcle = ">" rimclame = ">" rimclas ">" rimclas ">" rimclas ">" rimclame = ">"> "rimclase ="> ">" rimclase = ">"> "rimcle"> "rimclase ="> ". <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://localhost:3306/springdb</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>leizhimin</value> </property> </bean> <bean id = "sessionFactory" Drest Method = "close"> <name = "dataSource"> <ref bean = "dataSource"/> </property> <name = "mappingResources"> <sist> <value> com/lavasoft/springnote/ch06_hbm_02protx/user.hbm.xm. name = "hibernateProperties"> <props> <prop key = "hibernate.dialect"> org.hibernate.dialect.mysqlidect </prop> </props> </property> </bean> <bean id = "userDao"> <props = "SessionFactory"> <refer Bean = "SessionFactory"/> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </beancefort>
Импорт org.springframework.context.applicationContext; Import org.springframework.context.support.filesystemxmlapplicationContext; /*** Создано Intellij Idea. <br>* <b> note </b>: тестовый класс, клиент*/public class springhibernatedemo {public static void main (string [] args) {ApplicationContext context = new FileSystemXmlapplicationContext ("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 = userdao.find (новое целое число (1)); System.out.println ("name:" + user.getName ()); }}
Результаты работы:
log4j: предупреждают, что приложения не могут быть найдены для logger (org.springframework.core.collectionFactory). log4j: предупреждайте, пожалуйста, инициализируйте систему log4j должным образом. Идентификатор сохраненного пользовательского объекта: 18 Имя: JDBCTEMPLATE Процесс завершен с кодом выхода 0