- 浏览: 3431710 次
- 性别:
- 来自: 珠海
文章分类
- 全部博客 (1633)
- Java (250)
- Android&HTML5 (111)
- Struts (10)
- Spring (236)
- Hibernate&MyBatis (115)
- SSH (49)
- jQuery插件收集 (55)
- Javascript (145)
- PHP (77)
- REST&WebService (18)
- BIRT (27)
- .NET (7)
- Database (105)
- 设计模式 (16)
- 自动化和测试 (19)
- Maven&Ant (43)
- 工作流 (36)
- 开源应用 (156)
- 其他 (16)
- 前台&美工 (119)
- 工作积累 (0)
- OS&Docker (83)
- Python&爬虫 (28)
- 工具软件 (157)
- 问题收集 (61)
- OFbiz (6)
- noSQL (12)
最新评论
-
HEZR曾嶸:
你好博主,这个不是很理解,能解释一下嘛//左边+1,上边+1, ...
java 两字符串相似度计算算法 -
天使建站:
写得不错,可以看这里,和这里的这篇文章一起看,有 ...
jquery 遍历对象、数组、集合 -
xue88ming:
很有用,谢谢
@PathVariable映射出现错误: Name for argument type -
jnjeC:
厉害,困扰了我很久
MyBatis排序时使用order by 动态参数时需要注意,用$而不是# -
TopLongMan:
非常好,很实用啊。。
PostgreSQL递归查询实现树状结构查询
http://hi.baidu.com/zwnlavmytfbjnwd/item/e98bfc516cd72cced3e10c41
Hibernate Search牛刀小试http://blog.csdn.net/yanghuw/article/details/1808011, 蛮详细的。
Hibernate Search全面概述 http://developer.51cto.com/art/200909/154278.htm
Hibernate Search项目的主要特性包含以下几个方面:
1.Lucene集成——作为强大高效的检索引擎,Lucene的美名早已久经考验了;
2.数据的自动插入和更新——当一个对象通过Hibernate添加或更新时,索引也会相应进行透明的更新;
3.支持众多复杂的搜索方式——可快速的使用通配符进行搜索,以及多关键词全文检索(multi-word text searches)和近似或同义词搜索(approximation/synonym searches),或根据相关性排列搜索结果;
4.搜索集群(Search Clustering)——Hibernate Search提供了内建搜索集群解决方案,其中包括一个基于JMS的异步查询和索引系统;
5.对Lucene API接口的直接调用——如果用户打算处理某些特别复杂的问题,可以在查询中直接使用Lucene提供的API接口;
6.对Lucene的自动管理——Hibernate Search可以管理并优化Lucene的索引,并且非常高效地使用Lucene的API接口。
Hibernate Search相关的Annotation主要有三个:
@Indexed 标识需要进行索引的对象, 属性 : index 指定索引文件的路径
@DocumentId 用于标示实体类中的唯一的属性保存在索引文件中,是当进行全文检索时可以这个唯一的属性来区分索引中其他实体对象,一般使用实体类中的主键属性
@Field 标注在类的get属性上,标识一个索引的Field 属性 : index 指定是否索引,与Lucene相同
store 指定是否索引,与Lucene相同
name 指定Field的name,默认为类属性的名称
analyzer 指定分析器
另外@IndexedEmbedded 与 @ContainedIn 用于关联类之间的索引
@IndexedEmbedded有两个属性,一个prefix指定关联的前缀,一个depth指定关联的深度
其他注解说明:http://sin90lzc.iteye.com/blog/1106258
数据库: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
//Foo.java(Hibernate POJO文件)
//hibernate.cfg.xml(Hibernate配置文件)
//applicationContext-conf.xml(加载.properties文件的配置文件)
//applicationContext-database.xml(数据源及SessionFactory定义文件)
//applicationContext-manager.xml(Manager定义文件)
//SpringMVC、Log4j、EHCache配置略
......
//FooManager.java(做全文检索示例)
Hibernate Search牛刀小试http://blog.csdn.net/yanghuw/article/details/1808011, 蛮详细的。
Hibernate Search全面概述 http://developer.51cto.com/art/200909/154278.htm
Hibernate Search项目的主要特性包含以下几个方面:
1.Lucene集成——作为强大高效的检索引擎,Lucene的美名早已久经考验了;
2.数据的自动插入和更新——当一个对象通过Hibernate添加或更新时,索引也会相应进行透明的更新;
3.支持众多复杂的搜索方式——可快速的使用通配符进行搜索,以及多关键词全文检索(multi-word text searches)和近似或同义词搜索(approximation/synonym searches),或根据相关性排列搜索结果;
4.搜索集群(Search Clustering)——Hibernate Search提供了内建搜索集群解决方案,其中包括一个基于JMS的异步查询和索引系统;
5.对Lucene API接口的直接调用——如果用户打算处理某些特别复杂的问题,可以在查询中直接使用Lucene提供的API接口;
6.对Lucene的自动管理——Hibernate Search可以管理并优化Lucene的索引,并且非常高效地使用Lucene的API接口。
Hibernate Search相关的Annotation主要有三个:
@Indexed 标识需要进行索引的对象, 属性 : index 指定索引文件的路径
@DocumentId 用于标示实体类中的唯一的属性保存在索引文件中,是当进行全文检索时可以这个唯一的属性来区分索引中其他实体对象,一般使用实体类中的主键属性
@Field 标注在类的get属性上,标识一个索引的Field 属性 : index 指定是否索引,与Lucene相同
store 指定是否索引,与Lucene相同
name 指定Field的name,默认为类属性的名称
analyzer 指定分析器
另外@IndexedEmbedded 与 @ContainedIn 用于关联类之间的索引
@IndexedEmbedded有两个属性,一个prefix指定关联的前缀,一个depth指定关联的深度
其他注解说明:http://sin90lzc.iteye.com/blog/1106258
数据库: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
//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配置文件)
<?xml version="1.0"?> <!DOCTYPE hibernate-configuration PUBLIC "-//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"/> </session-factory> </hibernate-configuration>
//applicationContext-conf.xml(加载.properties文件的配置文件)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <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> <value>classpath*:hibernate.properties</value> </list> </property> </bean> </beans>
//applicationContext-database.xml(数据源及SessionFactory定义文件)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//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> <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> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop> <prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop> <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> <prop key="hibernate.search.default.directory_provider">${hibernate.search.default.directory_provider}</prop> <prop key="hibernate.search.default.indexBase">${hibernate.search.default.indexBase}</prop> </props> </property> </bean> <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"/> </beans>
//applicationContext-manager.xml(Manager定义文件)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <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</prop> </props> </property> </bean> <!-- Authentication manager for login and role checking --> <bean id="fooManager" parent="baseTxService"> <property name="target"> <bean class="com.itone.search.manager.FooManager"/> </property> </bean> </beans>
//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()); } } }
发表评论
-
spring配置事物的方式:注解和aop配置
2016-05-14 00:26 4113参考: Spring AOP中pointcut express ... -
写个mybatis的拦截插件,实现将所有执行的sql写入文件里
2016-05-12 15:59 5113原文 http://3131854.blog.51cto.co ... -
Mybatis分库分表扩展插件
2016-05-12 15:47 1632http://fangjialong.iteye.com/bl ... -
spring+mybatis+atomikos 实现JTA事务
2016-05-11 22:00 5531sping配置多个数据源 不同用户操作不同数据库 http:/ ... -
ibatis扩展支持主键生成的方法(非数据库方式)
2016-04-13 22:01 985http://blog.csdn.net/warison200 ... -
ibatis 动态 Mapped Statement
2016-03-31 17:02 865http://www.cnblogs.com/lcngu/p/ ... -
分布式事务管理
2016-03-31 16:43 1044http://my.oschina.net/pingpangk ... -
ibatis中动态查询表返回用resultClass="java.util.HashMap" 的问题
2016-03-11 10:49 1130http://blog.csdn.net/dyllove98/ ... -
Mybatis传多个参数(三种解决方案)
2016-03-07 17:46 1454http://my.oschina.net/ydsakyclg ... -
mybatis --mapper配置文件中大于小于怎么处理
2016-03-04 14:21 2418http://blog.csdn.net/nich002/ar ... -
Mybatis 数据库物理分页插件 PageHelper
2015-11-28 01:09 2800http://www.cnblogs.com/digdeep/ ... -
Druid 的SQL翻译功能如何使用
2015-11-27 21:40 1987Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接 ... -
[MyBatis]mapperLocations属性通配符的使用
2015-11-26 10:49 6236http://blog.csdn.net/szwangdf/a ... -
Hibernate Validation使用示例及讲解
2015-11-22 21:06 2764http://wdmcygah.iteye.com/blog/ ... -
MyBatis排序时使用order by 动态参数时需要注意,用$而不是#
2015-11-17 17:54 20188http://blog.csdn.net/weibing_hu ... -
SpringMVC + Mybatis + Shiro 权限整合
2015-11-14 14:06 8753详细见参考文章: 基于Spring + Spring MVC ... -
MyBatis3 的Mapper XML 文件详解
2015-11-13 11:54 1368MyBatis3 的Mapper XML 文件http://m ... -
HibernateDao.java
2015-11-10 15:55 1170http://my.oschina.net/lizy/blog ... -
Hibernate envers开发指南
2015-10-24 00:44 1248http://www.blogjava.net/xmatthe ... -
Spring+Ibatis数据库水平分库
2015-09-13 21:15 1305Spring+Ibatis数据库水平分库 http://blo ...
相关推荐
在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 和 ExtJS 的基本概念和特点,还详细阐述了如何将这些技术栈整合起来构建一个实际的 Tree 示例。这种方式不仅提高了开发效率,还能更好地满足企业级应用...
结合这三个框架,我们可以创建一个高效的三层架构:Struts2负责前端请求的接收和处理,Spring管理业务逻辑和依赖,Hibernate处理数据存储和检索。通过Struts2的Action,我们可以调用Spring管理的Service层,Service...