Spring reference I. Giới thiệu



tải về 261.07 Kb.
trang3/3
Chuyển đổi dữ liệu02.09.2016
Kích261.07 Kb.
#30866
1   2   3







sequence"> Test_TestId_Seq







name" column="Name"/>


runDate" column="RunDate"/>






Select data:
Bây giờ chúng ta cấu hình Hibernate trong ứng dụng Spring, không sử dụng SQL, mà thay vào đó là HQL và cài đặt DAO để trả về một vài dữ liệu.
import java.util.List;

public interface TestDao {

public List getAll();

public Test getById(int testId);

public void save(Test test);

public void delete(int testId);

}
Chúng ta chỉ cài đặt hai phương thức getAll() và getById(int):
import java.util.List;

import org.springframework.orm.hibernate.support.HibernateDaoSupport;


public class HibernateTestDao extends HibernateDaoSupport implements TestDao {

public List getAll() {

        return getHibernateTemplate().find("from Test");

}

public Test getById(int testId) {



        return (Test)getHibernateTemplate().load(Test.class,

            new Integer(testId));

}

public void save(Test test) {



}

public void delete(int testId) {

}

}
HibernateDaoSupport là lớp cha cho phép chúng ta sử dụng phương thức getHibernateTemplte() trả về HibernateTemplate - ủy thác các lời triệu gọi đến các phương thức của Hibernate.


Để đảm bảo code này là đúng, chúng ta tạo một lớp Main đơn giản - xây dựng application context từ file XML ở classpath. Trước khi chúng ta làm điều này, chúng ta phải sửa file applicationContext.xml để thêm vào bean testDao:

"http://www.springframework.org/dtd/spring-beans.dtd">










sessionFactory">







Bây giờ chúng ta có database, chúng ta đã cấu hình sessionFactory và bean testDao. Cuối cùng là lớp Main:
import java.util.Iterator;

import java.util.List;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {

private ApplicationContext context;

private void test() {

        TestDao testDao = (TestDao)context.getBean("testDao");

List tests = testDao.getAll();

    


for (Iterator i = tests.iterator(); i.hasNext();) {

Test test = (Test)i.next();

System.out.println(test);

}

}



private void run() {

System.out.println("Initializing application");

        context = new ClassPathXmlApplicationContext("applicationContext.xml");

test();


System.out.println("Done");

}

public static void main(String[] args) {



new Main().run();

}

}


Ở đây bạn có thể thấy rằng context được xây dựng trong phương thức run() và test() để lấy cài đặt trong TestDao và gọi getAll() để trả vể một List các đối tượng domain Test. Cuối cùng chúng ta lặp qua nội dung của danh sách và in ra từng item. Khi chạy file này thì kết xuất như sau:
init:

compile:


run:

[java] Initializing application

...

[java] INFO: Creating shared instance of singleton bean 'sessionFactory'



[java] Sep 2, 2004 11:30:16 AM net.sf.hibernate.cfg.Environment

[java] INFO: Hibernate 2.1.6

[java] Sep 2, 2004 11:30:16 AM net.sf.hibernate.cfg.Environment

[java] INFO: hibernate.properties not found

[java] Sep 2, 2004 11:30:16 AM net.sf.hibernate.cfg.Environment

[java] INFO: using CGLIB reflection optimizer

[java] Sep 2, 2004 11:30:16 AM net.sf.hibernate.cfg.Binder bindRootClass

[java] INFO: Mapping class: com.apress.prospring.ch9.domain.Test -> Test

[java] Sep 2, 2004 11:30:16 AM 

org.springframework.orm.hibernate.LocalSessionFactoryBean afterPropertiesSet

[java] INFO: Building new Hibernate SessionFactory

[java] Sep 2, 2004 11:30:16 AM net.sf.hibernate.cfg.

Configuration secondPassCompile

[java] INFO: processing one-to-many association mappings

[java] Sep 2, 2004 11:30:16 AM net.sf.hibernate.cfg.

Configuration secondPassCompile

[java] INFO: processing one-to-one association property references

[java] Sep 2, 2004 11:30:16 AM net.sf.hibernate.cfg.

Configuration secondPassCompile

[java] INFO: processing foreign key constraints

[java] Sep 2, 2004 11:30:16 AM net.sf.hibernate.dialect.Dialect

[java] INFO: Using dialect: net.sf.hibernate.dialect.PostgreSQLDialect

[java] Sep 2, 2004 11:30:16 AM net.sf.hibernate.cfg.

SettingsFactory buildSettings

[java] INFO: Use outer join fetching: true

[java] Sep 2, 2004 11:30:16 AM 

net.sf.hibernate.connection.ConnectionProviderFactory newConnectionProvider

[java] INFO: Initializing connection provider: org.springframework.orm.

hibernate.LocalDataSourceConnectionProvider

[java] Sep 2, 2004 11:30:16 AM 

net.sf.hibernate.transaction.TransactionManagerLookupFactory 

getTransactionManagerLookup

[java] Sep 2, 2004 11:30:17 AM net.sf.hibernate.cfg.

SettingsFactory buildSettings

[java] INFO: Use scrollable result sets: true

[java] Sep 2, 2004 11:30:17 AM net.sf.hibernate.cfg.

SettingsFactory buildSettings

[java] INFO: Use JDBC3 getGeneratedKeys(): false

[java] Sep 2, 2004 11:30:17 AM net.sf.hibernate.cfg.

SettingsFactory buildSettings

[java] INFO: Optimize cache for minimal puts: false

[java] Sep 2, 2004 11:30:17 AM net.sf.hibernate.cfg.

SettingsFactory buildSettings

[java] INFO: Query language substitutions: {}

[java] Sep 2, 2004 11:30:17 AM net.sf.hibernate.cfg.

SettingsFactory buildSettings

[java] INFO: cache provider: net.sf.hibernate.cache.EhCacheProvider

[java] Sep 2, 2004 11:30:17 AM net.sf.hibernate.cfg.

Configuration configureCaches

[java] INFO: instantiating and configuring caches

[java] Sep 2, 2004 11:30:17 AM net.sf.hibernate.impl.SessionFactoryImpl

[java] Sep 2, 2004 11:30:17 AM net.sf.hibernate.impl.

SessionFactoryObjectFactory addInstance

[java] INFO: Not binding factory to JNDI, no JNDI name configured

[java] Sep 2, 2004 11:30:17 AM 

org.springframework.orm.hibernate.HibernateTransactionManager 

afterPropertiesSet

...


     [java] Test { testId=1, name=foobar, runDate=2004-01-01 00:00:00.0}

[java] Done



BUILD SUCCESSFUL

Total time: 2 seconds

tải về 261.07 Kb.

Chia sẻ với bạn bè của bạn:
1   2   3




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương