Spring.xml
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<bean id="com.spring.ch11.dao.hibernate.IDemoDao"
class="com.spring.ch11.dao.hibernate.DemoDaoImpl"
p:sessionFactory-ref="sessionFactory">
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:com/spring/ch11/dao/hibernate/hibernate.cfg.xml</value>
</property>
</bean>
</beans>
hibernate.cfg.xml
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="connection.password">34060935</property>
<property name="show_sql">true</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<!-- Mapping files -->
<mapping resource="com/spring/ch11/dao/hibernate/demo.hbm.xml" />
</session-factory>
</hibernate-configuration>
Demo.hbm.xml
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.spring.ch11.dao.hibernate.Demo" table="demo">
<id type="int" name="id">
<generator class="native"></generator>
</id>
<property name="name" type="string"></property>
<property name="unitPrice" type="float"></property>
</class>
</hibernate-mapping>
Demo.java
package com.spring.ch11.dao.hibernate;
import java.io.Serializable;
public class Demo implements Serializable{
private int id;
private float unitPrice;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public float getUnitPrice() {
return unitPrice;
}
public void setUnitPrice(float unitPrice) {
this.unitPrice = unitPrice;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
IDemoDao.java
package com.spring.ch11.dao.hibernate;
import java.util.List;
public interface IDemoDao {
public Demo getById(int id);
public List<Demo> getAll();
}
DemoDaoImpl.java
package com.spring.ch11.dao.hibernate;
import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.HibernateTemplate;
public class DemoDaoImpl implements IDemoDao {
private HibernateTemplate hibernateTemplate;
public void setSessionFactory(SessionFactory sessionFactory) {
this.hibernateTemplate = new HibernateTemplate(sessionFactory);
}
@Override
public Demo getById(int id) {
return (Demo) this.hibernateTemplate.find("from Demo d where d.id = " + id).get(0);
}
@Override
public List<Demo> getAll() {
return this.hibernateTemplate.find("from Demo d");
}
}
Client.java
package com.spring.ch11.dao.hibernate;
import java.util.List;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext(
"spring.xml", Client.class);
org.springframework.orm.hibernate3.LocalSessionFactoryBean localSessionFactoryBean = null;
DemoDaoImpl demoDaoImpl = (DemoDaoImpl) context.getBean(IDemoDao.class
.getName());
// doInsert(baseDAO);
Demo demo = demoDaoImpl.getById(1);
System.out.println(ToStringBuilder.reflectionToString(demo));
List<Demo> demoList = demoDaoImpl.getAll();
for (Demo demo2 : demoList) {
System.out.println(ToStringBuilder.reflectionToString(demo2));
}
}
}
本文介绍了一个使用Spring框架和Hibernate ORM技术实现的数据访问层示例。通过配置Spring XML文件,定义了DAO接口及其Hibernate实现,并展示了如何进行数据库操作。
1086

被折叠的 条评论
为什么被折叠?



