spring+hibernate:整合

步骤1:引入类包

如下图:这里是所有的类包,为后面的struts整合考虑

aaarticlea/png;base64,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" alt="" />

步骤2:修改web.xml

在web.xml中加入下面的配置

  <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:beans.xml</param-value>//这个beans.xml是在src目录下建立的文件,具体下面会陈述
</context-param>
<!-- 对Spring容器进行实例化 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <filter>
<filter-name>OpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

步骤3:建立实体类并建立hibernate的配置文件

package com.test.model;

public class user {
private int id;
private String username;
private String password;
private String age; public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public void setUsername(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
}
<?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 package="com.test.model">
<class name="user" table="[User]">
<cache usage="read-write" region="com.test.model.user"/>
<id name="id">
<generator class="identity"/>
</id>
<property name="username" column="username" not-null="true"/>
<property name="password" column="password" not-null="true"/>
<property name="age" column="age" not-null="false"/>
</class>
</hibernate-mapping>

步骤4:建立beans.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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-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">
<context:annotation-config/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
<property name="url" value="jdbc:sqlserver://127.0.0.1:1433;databaseName=Hibernate"/> ////数据库链接
<property name="username" value="sa"/>
<property name="password" value="123456"/>
<!-- 连接池启动时的初始值 -->
<property name="initialSize" value="1"/>
<!-- 连接池的最大值 -->
<property name="maxActive" value="500"/>
<!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
<property name="maxIdle" value="2"/>
<!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
<property name="minIdle" value="1"/>
</bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources">
<list>
<value>com/test/model/user.hbm.xml</value> //////这个是实体类的hibernate配置文件
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
hibernate.hbm2ddl.auto=update
hibernate.show_sql=false
hibernate.format_sql=false
hibernate.cache.use_second_level_cache=true
hibernate.cache.use_query_cache=false
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
</value>
</property>
</bean>
<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<tx:annotation-driven transaction-manager="txManager"/> <bean id="userService" class="com.test.implement.userServiceBean"/> ///// </beans>

步骤5:定义一个userService接口,并实现它。

package com.test.Interface;

import java.util.List;

import com.test.model.user;

public interface userService {

    public    List<user> getAll();

}
package com.test.implement;

import java.util.List;

import javax.annotation.Resource;

import org.hibernate.SessionFactory;
import org.springframework.transaction.annotation.Transactional; import com.test.Interface.userService;
import com.test.model.user; public class userServiceBean implements userService{ @Resource private SessionFactory sessionFactory; @Transactional
public List<user> getAll() { return sessionFactory.getCurrentSession().createQuery("from user").list(); } }

步骤6:单元测试

package com.test.test;

import java.util.List;

import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.test.Interface.userService;
import com.test.model.user; import junit.framework.TestCase; public class userTest { private static userService userservice; @BeforeClass
public static void setUpBeforeClass() throws Exception {
ApplicationContext ac=new ClassPathXmlApplicationContext("beans.xml");
userservice=(userService) ac.getBean("userService");
} @Test
public void testGetAll()
{
List<user> users=userservice.getAll();
for (user item : users) {
System.out.print("Id:"+item.getId()+"\t");
System.out.print("username:"+item.getUsername()+"\t");
}
} }

错误1:

org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here

原因:在实现的地方,没有加入事务

解决办法:在对应方法上面加@Transactional

到此,spring和hibernate整合成功

spring+hibernate+struts整合(1)的更多相关文章

  1. spring+hibernate+struts整合(2)

    spring和struts2的整合 1:配置Web.xml文件 <filter> <filter-name>struts2</filter-name> <fi ...

  2. jbpm与spring hibernate struts整合

    applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xm ...

  3. Spring+Hibernate+Struts(SSH)框架整合

    SSH框架整合 前言:有人说,现在还是流行主流框架,SSM都出来很久了,更不要说SSH.我不以为然.现在许多公司所用的老项目还是ssh,如果改成流行框架,需要成本.比如金融IT这一块,数据库dao层还 ...

  4. Struts+Spring+Hibernate项目整合AJAX+JSON

    1.什么是AJAX AJAX是 "Asynchronous JavaScript and XML" 的简称,即异步的JavaScript和XML. 所谓异步,就是提交一个请求不必等 ...

  5. Spring与Struts整合

    Spring框架是一个非常优秀的轻量级Java EE容器,Spring框架是整个轻量级Java EE框架的核心.大部分的Java EE应用,都会考虑使用Spring容器管理应用中的组件,从而保证各组件 ...

  6. spring 和 struts 整合遇到的问题(学习中)

    一大早就报错 org.hibernate.TransactionException: Transaction not successfully started at org.hibernate.eng ...

  7. spring和struts整合

    整合准备:导入jar包 如果只是访问action,没有做数据库方面的操作的话 只需要导入下面的jar spring相关jar 以及struts相关jar包 整合过程: 用到了struts所以需要在we ...

  8. Spring,hibernate,struts的面试笔试题(含答案)

    Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久 ...

  9. Struts2 Spring Hibernate 框架整合 Annotation MavenProject

    项目结构目录 pom.xml       添加和管理jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns ...

随机推荐

  1. python日志输出

    import logging logger = logging.getLogger() #生成一个日志对象,()内为日志对象的名字,可以不带,名字不给定就是root,一般给定名字,否则会把其他的日志输 ...

  2. 《Java数据结构与算法》笔记-CH2无序数组

    /** * 本章目标: * 1.自制数组类 * 2.有序数组:按关键字升降序排列:二分法查找 * 3.分析有序数组.大O表示法 */ /** * 自制数组类 书中有的地方有错误,本程序以修改 */ c ...

  3. JEE , EJB概念深入概括

    说起EJB,不得不提JEE,java EE 英文全称为:java Enterprise Edition企业级应用的软件架构,是一种思想,也是一种规范,方便从事这方面的开发者以及开发厂商进行规范性的开发 ...

  4. Spring dependency checking with @Required Annotation

    Spring's dependency checking in bean configuration file is used to make sure all properties of a cer ...

  5. Spring入门(6)-使用注解装配

    Spring入门(6)-使用注解装配 本文介绍如何使用注解装配. 0. 目录 使用Autowired 可选的自动装配 使用Qualifier选择 1. 使用Autowired package com. ...

  6. codeforces 630C Lucky Numbers

    C. Lucky Numbers time limit per test 0.5 seconds memory limit per test 64 megabytes input standard i ...

  7. android Handler错误,不同的包Handler

    1. import java.util.logging.Handler;这个包了会自动生成如下方法.当时还觉得和以前的不一样了,本不在意. Handler handler1= new Handler( ...

  8. sql prompt格式设置

    sql prompt格式设置. 格式前: 格式后:

  9. Hadoop on Mac with IntelliJ IDEA - 3 解决MRUnit - No applicable class implementing Serialization问题

    本文讲述在IntelliJ IDEA中使用MRUnit 1.0.0测试Mapper派生类时因MapDriver.withInput(final K1 key, final V1 val)的key参数被 ...

  10. cdoj 1253 阿里巴巴和n个大盗 博弈论

    阿里巴巴和n个大盗 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1253 D ...