Spring中配合hibernate使用的简单例子
2006-08-04 09:22
633 查看
最近在看SPRING和hibernate,学习了spring和hibernate之间整合,下面举出一个例子予以说明.
首先,可以注入的是sessionfactory,因为sessionfactory的Datasource可以用spring注入.比如一个下面的例子,是对对象进行增加的
接口IUserDAO:
public interface IUserDAO {
public void insert(User user);
}
User.java:
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
UserDao.java:
(这里省去了import等东西了)
public class UserDAO implements IUserDAO {
private SessionFactory sessionFactory;
public UserDAO() {
}
public UserDAO(SessionFactory sessionFactory) {
this.setSessionFactory(sessionFactory);
}
//注入sessionFactory
public void setSessionFactory(
SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public void insert(User user) {
Session session = sessionFactory.openSession();
Transaction tx= session.beginTransaction();
session.save(user);
tx.commit();
session.close();
}
关键的base-config.xml:
<beans>
//基本的datasource,存放实际连接串等东西
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/SpringHibernateDemo</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>123456</value>
</property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" >
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="mappingResources">
<list>
<value>liaoo/springhibernatear/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
</bean>
<bean id="userDAO" class="liao.springhibernate.UserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
可以看到,这里对userDAO类的sessionFactory进行了注入,而参考到其中的bean-config.xml里sessionFactory里实现.可以看到,可以将datasource注入到LocalSessionFactoryBean中.要注意的是org.springframework.orm.hibernate3.LocalSessionFactoryBean是hibernate 3整合使用的,org.springframework.orm.hibernate.LocalSessionFactoryBean是hibernate 2中使用的.
最后是测试程序
public static void main(String[] args) {
ApplicationContext context =
new FileSystemXmlApplicationContext(
"beans-config.xml");
IUserDAO userDAO = (IUserDAO) context.getBean("userDAO");
User user = new User();
user.setName("jackyrong");
userDAO.insert(user);
首先,可以注入的是sessionfactory,因为sessionfactory的Datasource可以用spring注入.比如一个下面的例子,是对对象进行增加的
接口IUserDAO:
public interface IUserDAO {
public void insert(User user);
}
User.java:
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
UserDao.java:
(这里省去了import等东西了)
public class UserDAO implements IUserDAO {
private SessionFactory sessionFactory;
public UserDAO() {
}
public UserDAO(SessionFactory sessionFactory) {
this.setSessionFactory(sessionFactory);
}
//注入sessionFactory
public void setSessionFactory(
SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public void insert(User user) {
Session session = sessionFactory.openSession();
Transaction tx= session.beginTransaction();
session.save(user);
tx.commit();
session.close();
}
关键的base-config.xml:
<beans>
//基本的datasource,存放实际连接串等东西
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/SpringHibernateDemo</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>123456</value>
</property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" >
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="mappingResources">
<list>
<value>liaoo/springhibernatear/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
</bean>
<bean id="userDAO" class="liao.springhibernate.UserDAO">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
可以看到,这里对userDAO类的sessionFactory进行了注入,而参考到其中的bean-config.xml里sessionFactory里实现.可以看到,可以将datasource注入到LocalSessionFactoryBean中.要注意的是org.springframework.orm.hibernate3.LocalSessionFactoryBean是hibernate 3整合使用的,org.springframework.orm.hibernate.LocalSessionFactoryBean是hibernate 2中使用的.
最后是测试程序
public static void main(String[] args) {
ApplicationContext context =
new FileSystemXmlApplicationContext(
"beans-config.xml");
IUserDAO userDAO = (IUserDAO) context.getBean("userDAO");
User user = new User();
user.setName("jackyrong");
userDAO.insert(user);
相关文章推荐
- Spring中配合hibernate使用的简单例子
- Spring中配合hibernate使用的简单例子
- Spring+struts2+hibernate框架的Java Web项目利用POI导出Excel简单例子
- kaptcha的和springboot一起使用的简单例子
- Spring3.x_Struts2.x_Hibernate3.x整合之分页pager-taglib的简单使用
- spring使用注解的简单例子
- 一个使用spring的最简单的例子。
- 使用manven+hibernate+spring+shiro登录验证实现简单增删改查
- spring+struts+hibernate简单例子(转的)
- Eclipse + MyEclipse整合Struts+Spring+Hibernate简单例子开发
- spring中对hibernate的支持是非常强大的,从一个简单的例子就看得出来,从这个例子中我们还将对所谓的轻量级容器做一些讨论。
- 使用Spring整合Hibernate的小例子,内含所有jar包导入Eclipse即可运行
- Spring+Hibernate:使用注释和OSCache整合的简单实例
- 简单的使用hibernate插入数据的例子
- Struts2.0.11+ Hibernate3.6.0+Spring2.5.6的简单使用与配置
- spring-jms(activemq实现)使用queue发送消息简单例子
- 一个简单的 ASP.NET MVC 例子演示如何在 Knockout JS 的配合下,使用 TypeScript 。
- 关于使用Spring和hibernate开发web程序的配置说明和简单实例的详细说明
- springboot 中使用websocket简单例子
- Spring+Hibernate 简单例子