- 浏览: 723642 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
一剪梅:
关于您对于 hasRolePermission 用法的解释, ...
OFBIZ安全性技术(翻译) -
沈寅麟:
数据模型资源手册卷3中文版出版了 -
donaldjohn:
恭喜恭喜, 预祝大卖
数据模型资源手册卷3中文版出版了 -
成大大的:
OFBiz电商实战百度网盘下载:http://pan.baid ...
OFBiz入门实训教程 -
成大大的:
OFBiz电商实战百度网盘下载:http://pan.baid ...
OFBiz促销码生成解释
我就是一个快乐的程序员~
查看文章
基于Spring的Hibernate Search全文检索功能示例
2007-08-23 19:27
数据库:Oracle 9i
JDBC驱动:OJDBC14
开发环境:Eclipse-JEE
Spring版本:Spring 2.0.6
Hibernate版本:Hibernate Core 3.2.5/Hibernate Annotation 3.3.0/Hibernate Validator 3.0.0/Hibernate Search 3.0.0 Beta4
//jdbc.properties(JDBC配置文件)
jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@192.168.0.3:1521:itone
jdbc.username=test
jdbc.password=test
//hibernate.properties(Hibernate配置文件)
hibernate.dialect=org.hibernate.dialect.Oracle9Dialect
hibernate.show_sql=false
hibernate.cache.use_query_cache=true
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
hibernate.hbm2ddl.auto=update
######以下是Hibernate Search的简单配置######
hibernate.search.default.directory_provider=org.hibernate.search.store.FSDirectoryProvider
hibernate.search.default.indexBase=E:/indexes
java 代码
- //Foo.java(Hibernate POJO文件)
- @Entity
- @Table(name = "search_foo")
- @Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
- @Indexed(index = "search_foo")
- public class Foo implements Serializable {
- @Id
- @GeneratedValue(strategy = GenerationType.AUTO)
- @DocumentId
- private Integer id;
- @Column(nullable = false, length = 256)
- @Field(name = "name", index = Index.TOKENIZED, store = Store.YES)
- private String name;
- @Lob
- @Field(name = "content", index = Index.TOKENIZED, store = Store.YES)
- private String content;
- @Column(name = "post_time", nullable = false)
- @DateBridge(resolution = Resolution.DAY)
- private Calendar postTime;
- public Integer getId() {
- return id;
- }
- public void setId(Integer id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getContent() {
- return content;
- }
- public void setContent(String content) {
- this.content = content;
- }
- public Calendar getPostTime() {
- return postTime;
- }
- public void setPostTime(Calendar postTime) {
- this.postTime = postTime;
- }
- }
代码
- //hibernate.cfg.xml(Hibernate配置文件)
- version="1.0"?>
- "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
- <hibernate-configuration>
- <session-factory>
- <mapping class="com.itone.search.pojo.Foo"/>
- >
- >
- //applicationContext-conf.xml(加载.properties文件的配置文件)
- version="1.0" encoding="UTF-8"?>
- >
- <beans default-autowire="byName">
- <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" lazy-init="false">
- <property name="locations">
- <list>
- <value>classpath*:jdbc.properties>
- <value>classpath*:hibernate.properties>
- >
- >
- >
- >
代码
- //applicationContext-database.xml(数据源及SessionFactory定义文件)
- "1.0" encoding="UTF-8"?>
- "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
- <beans default-autowire="byName">
- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
- <property name="driverClassName" value="${jdbc.driverClassName}"/>
- <property name="url" value="${jdbc.url}"/>
- <property name="username" value="${jdbc.username}"/>
- <property name="password" value="${jdbc.password}"/>
- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
- <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"/>
- <property name="configLocation" value="/WEB-INF/classes/hibernate.cfg.xml"/>
- <property name="hibernateProperties">
- <props>
- <prop key="hibernate.dialect">${hibernate.dialect}
- <prop key="hibernate.show_sql">${hibernate.show_sql}
- <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}
- <prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}
- <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}
- <prop key="hibernate.search.default.directory_provider">${hibernate.search.default.directory_provider}
- <prop key="hibernate.search.default.indexBase">${hibernate.search.default.indexBase}
- <bean id="jdbcExceptionTranslator" class="org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator"/>
- <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"/>
- <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"/>
xml 代码
- //applicationContext-manager.xml(Manager定义文件)
- version="1.0" encoding="UTF-8"?>
- >
- <beans default-autowire="byName">
- <bean id="baseTxService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
- <property name="proxyTargetClass" value="true"/>
- <property name="transactionAttributes">
- <props>
- <prop key="*">PROPAGATION_REQUIRED>
- >
- >
- >
- <!---->>
- <bean id="fooManager" parent="baseTxService">
- <property name="target">
- <bean class="com.itone.search.manager.FooManager"/>
- >
- >
- >
java 代码
- /SpringMVC、Log4j、EHCache配置略
- //FooManager.java(做全文检索示例)
- package com.itone.search.manager;
- import java.util.List;
- import org.apache.lucene.analysis.StopAnalyzer;
- import org.apache.lucene.queryParser.QueryParser;
- import org.apache.lucene.search.Query;
- import org.hibernate.search.FullTextQuery;
- import org.hibernate.search.FullTextSession;
- import com.itone.search.pojo.Foo;
- public class FooManager extends BaseManager<Foo> {
- @SuppressWarnings("unchecked")
- public void testQuery() throws Exception {
- QueryParser parser = new QueryParser("name", new StopAnalyzer());
- Query luceneQuery = parser.parse("name:Jack");
- FullTextSession s = Search.createFullTextSession(getSession());
- FullTextQuery query = s.createFullTextQuery(luceneQuery, Foo.class);
- List<Foo> result = query.list();
- for(Foo f : result) {
- System.out.println("ID:" + f.getId());
- System.out.println("NAME:" + f.getName());
- System.out.println("CONTENT:" + f.getContent());
- System.out.println("POSTTIME:" + f.getPostTime());
- }
- }
- }
- 1123.zip (2.5 KB)
- 下载次数: 427
发表评论
-
Lucene集群
2008-11-27 11:10 2817Lucene in a cluster Lucene是 ... -
ant部署GWT项目
2008-09-08 09:35 2912使用ant部署GWT应用的Bulid.xml文件内容,其中GW ... -
fmpp
2008-08-07 12:39 1478http://pipe.iteye.com/blog/1852 ... -
IE与FireFox的js和css几处不同点
2008-05-07 21:18 1930http://hi.baidu.com/zjcn5205/bl ... -
getResourceAsStream()
2008-04-13 22:15 1547getResourceAsStream() getClass ... -
Spring对各种数据访问框架的集成机制
2008-03-05 01:23 1326何为数据框架集成。 ... -
spring有三种启动方式,使用ContextLoaderServlet,ContextLoader
2008-03-05 01:08 3274http://hi.baidu.com/quxiling/bl ... -
Ajax的小贴士使用小结
2008-02-16 13:28 1207http://www.jb51.net/article/126 ... -
表格隔行换色,真是方便,摘自经典论坛
2007-12-08 18:36 2790表格隔行换色,真是方便,摘自经典论坛 代码 摘自: ... -
设计自己的Annotation
2007-10-24 09:34 1120设计自己的Annotation www.iteye.com/ ... -
eclipse中配置Maven
2007-10-15 10:21 3282安装Eclipse(可选) Eclipse是一种流行 ... -
ext paging.js 分页时的调用的写法。
2007-09-29 17:37 3966paging.js,分页时的调用的写法。 js 代码 ... -
Maven AppFuse Plugin
2007-09-26 14:43 2744appfuse:gen-model:根据数据库的 ... -
Maven2插件开发详解
2007-08-28 10:43 3580Maven2插件开发详解 blog.chinaunix.ne ... -
解决Maven2不支持一些第三方资源的问题
2007-08-28 10:39 1527解决Ma ... -
Maven入门--概念与实例
2007-08-28 10:34 5244Mave ... -
maven2——自动生成工程
2007-08-28 10:29 2513maven2是在ant的基础上发展起来的,并对ant的功能进行 ... -
资源文件及native2ascii应用
2007-07-31 10:04 41781,原理 Property 文件 ... -
用appfuse2.0生成一个单独的模块
2007-07-06 11:38 5199<o:p> </o:p> 使用 App ...
相关推荐
在Flex+Spring+Hibernate的架构中,Hibernate作为数据访问层,负责与数据库之间的交互,为Spring服务层提供数据存储和检索功能。 在该示例中,"bsh"可能是指BeanShell,这是一个小型、轻量级的Java脚本语言,有时在...
这个示例项目是基于这三个框架的整合应用,用于实现一个基本的用户登录功能。 **Struts2** 是一个用于构建MVC(Model-View-Controller)架构的开源框架,它在ActionServlet的基础上发展而来,提供了更灵活的控制层...
总结来说,这个示例项目是一个完整的Java应用框架,展示了如何优雅地集成Compass 2.0、Spring和Hibernate,实现一个功能强大的、支持全文搜索的持久层解决方案。它不仅有助于理解这三个框架的基本用法,还提供了实践...
- **Hibernate Search 3.4.0.Final**:提供了基于Lucene的全文检索功能,方便地将全文检索功能集成到Hibernate应用中。 #### 四、整体架构概述 此项目构建了一个集成了全文检索功能的应用系统,具体架构如下: 1....
Hibernate Search是Hibernate ORM框架的一个扩展,它提供了在数据库中进行全文本搜索的功能。"dis"可能是“distribution”的缩写,意味着这是一个完整发布的包,包含了所有必要的组件和库。 **描述解析:** 描述中...
"easyui+spring+hibernate示例,带权限管理"的项目正是基于这样的需求构建的,它结合了三种主流的技术栈:EasyUI、Spring和Hibernate,用于创建一个具备完整权限控制功能的应用系统。下面将详细阐述这三个关键组件...
### Spring + Hibernate 详解与配置 #### Spring框架概述 Spring框架是一个开源的、轻量级的应用框架,旨在简化企业级应用开发。它提供了一个全面的编程模型,支持从Web到数据访问等各种应用需求。Spring的核心...
Struts1.2、Spring1.2和Hibernate3.1是经典的Java企业级开发框架组合,通常被称为SSH(Struts + Spring + Hibernate)集成。这个整合示例代码提供了一个全面的学习资源,帮助开发者理解如何将这三个强大的框架有效地...
本教程将深入探讨如何将`WebService`(基于SOAP协议的服务)与Java开发中的两大支柱——`Spring`框架和`Hibernate`ORM工具进行整合,同时使用`MySQL`作为数据库。这个集成项目是一个简单的示例,旨在帮助开发者了解...
本项目“spring hibernate struts login2”是一个基于这三个框架实现的登录功能示例,旨在帮助开发者理解如何将这三个框架整合起来,构建一个完整的MVC(Model-View-Controller)架构的应用程序。 首先,让我们深入...
标题"Struts Spring Hibernate MyEclipse的Login Demo"指的是一个使用这四大技术实现的登录示例项目。这个项目可能包含了一个完整的登录功能,包括用户输入用户名和密码,验证身份,并根据结果重定向到不同的页面。 ...
开发者可能已经实现了使用Spring管理Hibernate的持久化操作,通过Struts2处理HTTP请求并展示结果,同时利用Lucene进行全文检索。这展示了如何将这些技术融合在一起,形成一个完整的Web应用解决方案,其中可能包括...
结合这三个框架,我们可以创建一个高效的三层架构:Struts2负责前端请求的接收和处理,Spring管理业务逻辑和依赖,Hibernate处理数据存储和检索。通过Struts2的Action,我们可以调用Spring管理的Service层,Service...