整合步骤一、加入jar包,这个大家都会。一般加jar的规则
整合步骤二、在spring里面配置连接dbcp连接池,这一块要用到
commons-collections.jar
commons-logging-1.0.4.jar
commons-dbcp.jar
commons-pool.jar
下面来看一下spring配置文件里面是怎么样来进行配置的:
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url" value="jdbc:sqlserver://localhost:1433;databaseName=wangying" />
<property name="username" value="sa" />
<property name="password" value="bbshop" />
<!-- 连接池启动时的初始值 -->
<property name="initialSize" value="1" />
<!-- 连接池的最大值 -->
<property name="maxActive" value="500" />
<!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
<property name="maxIdle" value="2" />
<!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
<property name="minIdle" value="1" />
</bean>
整合步骤三、配置hibernate的sessionFactory
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="myDataSource" />
<property name="packagesToScan">
<list>
<value>com.lushuifa.po</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
利用packagesToScan来扫描实体bean的位置,这里用到的是AnnotationSessionFactoryBean是注解的方式。 annotatedClasses也可以,但是要精确到某一个特定的类。
整合步骤四、配置hibernate的事务
<!-- 配置事务管理器 -->
<bean id="hibernateTransaction"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 提供事务的annotation支持 -->
<tx:annotation-driven transaction-manager="hibernateTransaction" />
整合步骤五、提供测试po类
package com.lushuifa.po;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="t_users_lushuifa")
public class Users implements Serializable
{
private static final long serialVersionUID = 1L;
private int id;
private String userName;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getUserName()
{
return userName;
}
public void setUserName(String userName)
{
this.userName = userName;
}
}
整合步骤六、提供测试dao
dao接口
package com.lushuifa.dao;
import java.util.List;
import com.lushuifa.po.Users;
public interface UserDao
{
/**
* 添加用户
* @param user
*/
public void addUsers(Users user);
public void delUsers(int id);
public List<Users> getUserList();
public Users findUserById(int id);
}
dao实现
package com.lushuifa.dao;
import java.util.List;
import javax.annotation.Resource;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.josql.Query;
import org.josql.QueryExecutionException;
import org.josql.QueryParseException;
import org.springframework.transaction.annotation.Transactional;
import com.lushuifa.po.Users;
@Transactional
public class UserDaoImpl implements UserDao
{
@Resource
private SessionFactory sessionFactory;
public SessionFactory getSessionFactory()
{
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory)
{
this.sessionFactory = sessionFactory;
}
/* (non-Javadoc)
* @see com.lushuifa.dao.UserDao#addUsers(com.lushuifa.po.Users)
*/
public void addUsers(Users user)
{
try
{
this.sessionFactory.getCurrentSession().persist(user);
}
catch (Exception e)
{
e.printStackTrace();
}
}
/* (non-Javadoc)
* @see com.lushuifa.dao.UserDao#delUsers(int)
*/
public void delUsers(int id)
{
try
{
this.sessionFactory.getCurrentSession().delete(this.findUserById(id));
}
catch (Exception e)
{
e.printStackTrace();
}
}
/* (non-Javadoc)
* @see com.lushuifa.dao.UserDao#getUserList()
*/
public List<Users> getUserList()
{
List<Users> userList = this.sessionFactory.getCurrentSession().createQuery("from Users").list();
return userList;
}
/* (non-Javadoc)
* @see com.lushuifa.dao.UserDao#findUserById(int)
*/
public Users findUserById(int id)
{
Users user = (Users) this.sessionFactory.getCurrentSession().load(Users.class, 1);
return user;
}
/* (non-Javadoc)
* @see com.lushuifa.dao.UserDao#findUserForJosql(int)
*/
public List findUserForJosql(int userid){
Query q = new Query();
List user = null;
try
{
q.parse("select * from Users");
q.setVariable("userid", userid);
user =q.execute(this.getUserList()).getResults();
}
catch (QueryParseException e)
{
e.printStackTrace();
}
catch (QueryExecutionException e)
{
e.printStackTrace();
}
return user;
}
public static void main(String[] args)
{
System.out.println(new UserDaoImpl());
}
}
整合步骤六、提供junit类
package com.lushuifa.dao;
import javax.annotation.Resource;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.lushuifa.po.Users;
public class UserDaoTest
{
private UserDao userDao = getUserDao();
private UserDao getUserDao()
{
ApplicationContext ac = new ClassPathXmlApplicationContext("spring_lushuifa.xml");
userDao = (UserDao) ac.getBean("userDao");
return userDao;
}
@Test
public void testAddUsers()
{
Users user = new Users();
user.setUserName("标标网");
userDao.addUsers(user);
System.out.println("添加成功");
}
@Test
public void testDelUsers()
{
userDao.delUsers(1);
System.out.println("删除成功!");
}
@Test
public void testJosql()
{
userDao.findUserForJosql(2);
}
}
到此结束
分享到:
相关推荐
总之,Struts2、Hibernate3和Spring2.5的整合可以大大提高开发效率,通过注解方式配置可以进一步减少XML配置文件,使代码更加简洁和易于维护。在实际项目中,这种整合方式被广泛采用,是Java Web开发的标准实践之一...
Spring 和 Hibernate 的整合是企业级 Java 应用开发中的常见实践,它将 Spring 框架的控制反转(IoC)和面向切面编程(AOP)优势与 Hibernate 的持久化能力相结合,提供了更高效、灵活的数据库操作。下面我们将深入...
在`Spring_1800_Spring_Hibernate_Transaction_Annotation`这个压缩包文件中,很可能包含了使用注解方式实现Spring整合Hibernate事务处理的相关示例代码和配置文件。通过阅读和理解这些代码,你可以更好地掌握这一...
标题"完整版spring hibernate整合采用annotation"指的是使用注解的方式将Spring和Hibernate进行集成。这种方式相比传统的XML配置更为简洁,减少了大量配置文件,提高了代码的可读性和维护性。 首先,我们需要理解...
5. **整合Hibernate和Spring**:通过Spring的HibernateTemplate或SessionFactoryUtils,可以在Service层中方便地操作数据库,避免了手动管理Session。 6. **测试**:创建Test1类进行单元测试或集成测试,确保各个...
在开发基于Spring与Hibernate整合的应用时,可能会遇到“`org.springframework.orm.hibernate3.LocalSessionFactoryBean` not found”这样的错误提示。这个问题通常发生在尝试通过Spring管理Hibernate ...
5. **整合Hibernate**:在实体类上使用@Entity,属性上使用@Column等注解,定义映射关系;在DAO接口上使用@Repository,利用Spring的代理机制实现事务控制。 通过这样的整合,开发者可以利用SpringMVC处理HTTP请求...
在IT行业中,Spring、SpringMVC和Hibernate是三个非常重要的框架,它们分别专注于不同领域的功能。Spring是一个全面的Java企业级应用开发框架,提供依赖注入(DI)和面向切面编程(AOP)等核心特性;SpringMVC是...
本文将深入探讨如何将Spring与Hibernate结合,采用注解方式来进行配置和开发,以实现高效的数据访问。 首先,让我们了解Spring框架。Spring是一个开源的Java平台,它简化了企业级应用开发,通过依赖注入(DI)和...
在整合 Spring 和 Hibernate 时,我们需要配置 Hibernate 的 SessionFactory,在 Spring 中可以使用 `@Bean` 注解来创建。然后,我们可以使用 `LocalSessionFactoryBean` 或 `HibernateJpaVendorAdapter` 来配置相关...
Struts2、Spring2.5和Hibernate3.0是Java Web开发中三个非常重要的框架,它们各自负责不同的职责,但可以协同工作以构建高效、可维护的Web应用程序。本项目整合了这三个框架,并利用注解(Annotation)进行配置,...
本教程将详细介绍如何整合Spring和Hibernate,以创建一个简单的工作示例。 首先,我们需要在项目中引入Spring和Hibernate的依赖。这通常通过Maven或Gradle的配置文件完成,确保添加对应的库依赖,如Spring的核心库...
Spring整合Hibernate主要涉及以下几点: 1. **SessionFactory的创建**:Spring管理SessionFactory,通常在ApplicationContext.xml中配置,通过`<bean id="sessionFactory" class="org.springframework.orm....
通过这种方式整合Spring和Hibernate,我们可以避免直接在代码中创建SessionFactory和Session,从而减少资源泄漏的风险,同时借助Spring的事务管理能力,简化事务处理。这种整合方式使得系统更加模块化,更易于维护和...
本文将详细解析"Struts2+Spring2+Hibernate3 Annotation的整合"这一主题,主要涵盖以下几个方面: 1. **Struts2框架**:Struts2是一个基于MVC设计模式的Web应用框架,用于简化Java Web应用程序的开发。它的主要功能...
本文将详细讲解如何通过Spring的注解方式整合Hibernate,以实现一个完整的数据访问解决方案。 首先,我们需要了解Spring的核心概念,即依赖注入(Dependency Injection,DI)。Spring通过DI帮助管理对象的生命周期...
下载后请修改数据库用户名和密码,即springAnnotation-hibernate.xml文件 案例系统支持功能如下: 注册功能,身份证,邮箱,手机号,姓名等校验,ajax异步获取资源 分页显示,编辑更新,多行删除等更功能,使用了MVC...
这个"Struts2+Spring2.5+Hibernate3+annotation"整合程序是为了实现高效、灵活和松耦合的Web应用架构。下面将详细介绍这三个框架的核心功能以及它们在整合中的作用。 1. Struts2:Struts2是一个基于MVC(Model-View...
本文将详细介绍SpringMVC与Hibernate整合所需的jar文件以及它们在整合过程中的作用。 首先,我们需要理解SpringMVC的核心组件。它包括DispatcherServlet(前端控制器)、HandlerMapping(处理器映射器)、...