java compass_Compass整合SSH

经过三天的折腾,终于把Compass整合SSH搞定了,下边贴出源码,给正在学习的朋友,毕竟网上关于Compass的详细介绍还是太少了。

我用到的版本是struts2+spring 2.5 +hibernate 3.2+compass 2.2+Quartz 1.6

一、创建一张表,表名PRODUCT

CREATE TABLE "LICE"."PRODUCT"

( "PRODUCT_ID" VARCHAR2(40) NOT NULL ENABLE,

"PRODUCT_NAME" VARCHAR2(80),

"PRODUCT_PRICE" NUMBER(6,2),

"PRODUCT_BRAND" VARCHAR2(40),

"PRODUCT_DESC" VARCHAR2(200),

"VERSION" NUMBER(10,0),

PRIMARY KEY ("PRODUCT_ID")

)

二、PRODUCT表对应的实体类

package com.lice.model;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.Id;

import javax.persistence.Table;

import javax.persistence.Version;

import org.hibernate.annotations.GenericGenerator;

import org.compass.annotations.*;

@Entity

@Table(name = "PRODUCT", schema = "LICE")

@Searchable

public class Product implements java.io.Serializable {

// Fields

@SearchableId

private String productId;

@SearchableProperty(name="productName")

private String productName;

@SearchableProperty(name="productPrice")

private Double productPrice;

@SearchableProperty(name="productBrand")

private String productBrand;

@SearchableProperty(name="productDesc")

private String productDesc;

@SearchableProperty(name="version")

private Integer version;

// Constructors

public Product() {

}

public Product(String productName, Double

productPrice,

String

productBrand, String productDesc) {

this.productName =

productName;

this.productPrice =

productPrice;

this.productBrand =

productBrand;

this.productDesc =

productDesc;

}

// Property accessors

@GenericGenerator(name = "generator", strategy =

"uuid.hex")

@Id

@GeneratedValue(generator = "generator")

@Column(name = "PRODUCT_ID", unique = true,

nullable = false, length = 40)

public String getProductId() {

return this.productId;

}

public void setProductId(String productId)

{

this.productId =

productId;

}

@Column(name = "PRODUCT_NAME", length =

80)

public String getProductName() {

return this.productName;

}

public void setProductName(String productName)

{

this.productName =

productName;

}

@Column(name = "PRODUCT_PRICE", precision =

6)

public Double getProductPrice() {

return this.productPrice;

}

public void setProductPrice(Double

productPrice) {

this.productPrice =

productPrice;

}

@Column(name = "PRODUCT_BRAND", length =

40)

public String getProductBrand() {

return this.productBrand;

}

public void setProductBrand(String

productBrand) {

this.productBrand =

productBrand;

}

@Column(name = "PRODUCT_DESC", length =

200)

public String getProductDesc() {

return this.productDesc;

}

public void setProductDesc(String productDesc)

{

this.productDesc =

productDesc;

}

@Version

public Integer getVersion() {

return version;

}

public void setVersion(Integer version)

{

this.version = version;

}

}

注意如果要用hibernate查询,model里必须加上@SearchableProperty(name="XXXX")这种注释。

三、对象的DAO和实现类

import java.util.List;

import com.lice.model.Product;

public interface ProductDao {

public void create(Product p);

public Product getProduct(String id);

public List getProducts();

public void update(Product product);

public void remove(String id);

}

package com.lice.dao.hibernate;

import java.util.List;

import

org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.lice.dao.ProductDao;

import com.lice.model.Product;

public class ProductDaoHibernate extends HibernateDaoSupport

implements ProductDao {

public void create(Product p) {

getHibernateTemplate().save(p);

}

public Product getProduct(String id) {

return

(Product)getHibernateTemplate().get(Product.class, id);

}

public List getProducts() {

return

getHibernateTemplate().find("from Product order by id desc");

}

public void remove(String id) {

getHibernateTemplate().delete(getProduct(id));

}

public void update(Product product) {

getHibernateTemplate().saveOrUpdate(product);

}

}

四、对应的Service和实现类

import java.util.List;

import com.lice.model.Product;

public interface ProductManager {

public void insertProduct(Product p);

public Product findProdcut(String id);

}

package com.lice.service.impl;

import java.util.ArrayList;

import java.util.List;

import com.lice.dao.ProductDao;

import com.lice.model.Product;

import com.lice.service.ProductManager;

public class ProductManagerImpl implements ProductManager

{

private ProductDao productDao;

public Product findProdcut(String id) {

return

productDao.getProduct(id);

}

public void insertProduct(Product p) {

productDao.create(p);

}

public ProductDao getProductDao() {

return productDao;

}

public void setProductDao(ProductDao

productDao) {

this.productDao =

productDao;

}

}

五、对应的action

package com.lice.action;

import java.util.List;

import org.apache.struts2.ServletActionContext;

import com.lice.model.Product;

import com.lice.service.CompassManager;

import com.lice.service.ProductManager;

import com.opensymphony.xwork2.ActionSupport;

public class ProductAction extends ActionSupport{

private static final long serialVersionUID =

-2189044281576376151L;

private ProductManager productManager;

private CompassManager compassManager;

private Product product;

private String queryString;

public String insert(){

productManager.insertProduct(product);

return SUCCESS;

}

public String search(){

List

results=compassManager.productCompass(queryString);

System.out.println(results.size());

ServletActionContext.getRequest().setAttribute("searchresults",

results);

return SUCCESS;

}

public ProductManager getProductManager()

{

return productManager;

}

public void setProductManager(ProductManager

productManager) {

this.productManager =

productManager;

}

public Product getProduct() {

return product;

}

public void setProduct(Product product) {

this.product = product;

}

public String getQueryString() {

return queryString;

}

public void setQueryString(String queryString)

{

this.queryString =

queryString;

}

public CompassManager getCompassManager() {

return compassManager;

}

public void setCompassManager(CompassManager

compassManager) {

this.compassManager =

compassManager;

}

}

六、配置文件applicationContext.xml

encoding="UTF-8"?>

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

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/tx

http://www.springframework.org/schema/tx/spring-tx-2.5.xsd

http://www.springframework.org/schema/aop

http://www.springframework.org/schema/aop/spring-aop-2.5.xsd"

default-lazy-init="true">

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

classpath:jdbc.properties

class="org.apache.commons.dbcp.BasicDataSource">

name="driverClassName"

value="${jdbc.driverClassName}"/>

name="url" value="${jdbc.url}" />

name="username"

value="${jdbc.username}">

name="password"

value="${jdbc.password}">

name="maxActive" value="${jdbc.maxActive}"/>

value="${jdbc.maxWait}"/>

value="${jdbc.poolPreparedStatements}"/>

value="${jdbc.defaultAutoCommit}"/>

value="${jdbc.logAbandoned}"/>

value="${jdbc.removeAbandoned}"/> 

name="removeAbandonedTimeout"

value="${jdbc.removeAbandonedTimeout}"/>

class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

name="dataSource">

bean="dataSource"

/>

name="hibernateProperties">

key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect

key="hibernate.show_sql">true

key="hibernate.cache.use_second_level_cache">true

key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider

key="hibernate.jdbc.fetch_size">30

key="hibernate.jdbc.batch_size">50

key="hibernate.statement_cache.size">0

name="configLocation" value="classpath:hibernate.cfg.xml"

/>

class="com.lice.dao.hibernate.ProductDaoHibernate">

name="sessionFactory"

ref="sessionFactory">

class="com.lice.service.impl.ProductManagerImpl

">

name="productDao"

ref="productDao">

name="compassTemplate"

ref="compassTemplate">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值