- 浏览: 316024 次
- 性别:
- 来自: 宁波
文章分类
最新评论
-
bqlin1987:
请问是不是ITeye的代码莫名的换行了?
学习SSO-1 Tomcat启用ssl -
a6821122:
在data-config.xml 里的javascript 不 ...
solr导入Oracle日期时间数据的处理 -
jie_kong:
是flexigrid不是flexgrid
FlexGrid自己用的经验 -
zjnbshifox:
呵呵,我也在摸索阶段,谢谢提醒ligywin 写道还需要补充以 ...
CAS自定义Credentials登录 -
ligywin:
还需要补充以下方法import org.apache.comm ...
CAS自定义Credentials登录
这两天自己配置了一个通过Spring Data来连接Mongodb的测试项目,并采用dsl来进行查询和分页,首先是pom
然后是spring的配置文件
Document的映射
Repository
测试代码如下:
这里有一个问题,在eclipse里面,似乎不会自动生成QCustomer这些查询类,需要按Ctrl+F11打开Maven的任务列表运行Generate source,才会在target目录下生成QCustomer,还需要复制到src/main/java下才可以,对maven插件不熟,不知道有什么插件可以自动将那个目录加为src目录
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.nbrc</groupId> <artifactId>sample</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>sample mongodb</name> <properties> <spring.version>3.2.1.RELEASE</spring.version> <spring.data.mongo.version>1.1.1.RELEASE</spring.data.mongo.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!-- Spring 3 dependencies --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>${spring.data.mongo.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <!-- MongoDB Java Driver --> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>2.7.1</version> </dependency> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>com.mysema.querydsl</groupId> <artifactId>querydsl-core</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>com.mysema.querydsl</groupId> <artifactId>querydsl-apt</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>com.mysema.querydsl</groupId> <artifactId>querydsl-mongodb</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <plugin> <groupId>com.mysema.maven</groupId> <artifactId>apt-maven-plugin</artifactId> <version>1.0.6</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>process</goal> </goals> <configuration> <outputDirectory>target/generated-sources/java</outputDirectory> <processor>org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor</processor> <logOnlyOnError>true</logOnlyOnError> </configuration> </execution> </executions> </plugin> </plugins> </build> <repositories> <repository> <id>spring-maven-release</id> <name>Spring Maven Release Repository</name> <url>http://maven.springframework.org/release</url> </repository> <repository> <id>querydsl-releases</id> <name>Query DSL</name> <url>http://source.mysema.com/maven2/releases</url> </repository> </repositories> </project>
然后是spring的配置文件
<?xml version="1.0"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mongo="http://www.springframework.org/schema/data/mongo" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo.xsd "> <!-- Connection to MongoDB server --> <mongo:db-factory host="localhost" port="27017" dbname="mytest" /> <!-- MongoDB Template --> <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /> </bean> <!-- Package w/ automagic repositories --> <mongo:repositories base-package="com.nbrc.sample.repository" /> <context:annotation-config /> <context:component-scan base-package="com.nbrc"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> </beans>
Document的映射
package com.nbrc.sample.mapping; import java.util.HashSet; import java.util.Set; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Field; @Document public class Customer extends AbstractDocument { private String firstname, lastname; @Field("email") private EmailAddress emailAddress; private Set<Address> addresses = new HashSet<Address>(); public Customer(String firstname, String lastname) { this.firstname = firstname; this.lastname = lastname; } //getter and setter }
Repository
package com.nbrc.sample.repository; import org.bson.types.ObjectId; import org.springframework.data.querydsl.QueryDslPredicateExecutor; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; import com.nbrc.sample.mapping.Customer; @Repository public interface CustomerRepository extends CrudRepository<Customer, ObjectId> ,QueryDslPredicateExecutor<Customer>{ }
测试代码如下:
package com.nbrc.sample; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests; import com.nbrc.sample.mapping.Customer; import com.nbrc.sample.mapping.EmailAddress; import com.nbrc.sample.mapping.QCustomer; import com.nbrc.sample.repository.CustomerRepository; @ContextConfiguration(locations={"classpath:mongodb/mongotest-context.xml"}) public class TestMongo extends AbstractJUnit4SpringContextTests { @Autowired CustomerRepository repo; @Before public void setup(){ for(int i=0;i<=10;i++){ Customer c = new Customer("fox" + i , "red" + i); //c.setEmailAddress(new EmailAddress("zjnb" + i + "@163.com")); repo.save(c); } } @Test public void testpage(){ QCustomer query = QCustomer.customer; PageRequest pr = new PageRequest(1, 3); Page<Customer> pg = repo.findAll(query.firstname.like("%f%"), pr); Assert.assertNotNull(pg); Assert.assertTrue(pg.getSize()==3); Customer c = pg.getContent().get(0); System.out.println(c.getId()); Assert.assertEquals("fox3", c.getFirstname()); } @After public void clear(){ repo.deleteAll(); } }
这里有一个问题,在eclipse里面,似乎不会自动生成QCustomer这些查询类,需要按Ctrl+F11打开Maven的任务列表运行Generate source,才会在target目录下生成QCustomer,还需要复制到src/main/java下才可以,对maven插件不熟,不知道有什么插件可以自动将那个目录加为src目录
发表评论
-
jasper report与Spring mvc整合
2015-10-19 16:02 1650配置jasper view resolver <be ... -
solr导入Oracle日期时间数据的处理
2013-02-08 10:01 5165参考文章: http://stackoverflow.com/ ... -
solr服务端加亮设置
2013-02-06 23:25 1321在${solr.home}/conf/solrconfig.x ... -
Solr客户端自定义开发
2013-02-06 16:52 1687@Service @Qualifier(" ... -
CAS 客户端获取Credentials额外信息
2013-02-06 09:40 4018服务端的配置 1、在deployerContext.xml中加 ... -
CAS自定义Credentials登录
2013-02-02 00:03 7991先看了这篇文章http://www.blogjava.net/ ... -
Spring MVC和freemarker配置
2013-01-21 13:45 2485参考文章:http://www.cnblogs.com/hoo ... -
我自己的maven环境
2013-01-17 14:37 1110今天把自己的maven环境记录下来,准备重装系统能找到 mav ... -
Spring-data jpa学习
2013-01-17 14:25 1821一个早上加一个中午就耗在这里了啊,就一个小问题,让我吐血不已, ... -
今天学会的DetachedCriteria用法
2013-01-12 22:01 10189以前用hibernate,一般都是使用hql语句的,因为和sq ... -
学习SSO-1 Tomcat启用ssl
2012-11-29 10:41 6995根据网上的http://www.kafeitu.me/sso/ ... -
学习使用spring data连接mongodb replset
2012-04-27 16:52 48741、分别在两个命令窗口中以replset方式启动两个mongo ... -
Solr连接数据库
2012-04-10 09:40 6221要建立自己的全文检索 ... -
Solr试用小记
2012-04-10 09:15 15711、下载tomcat7、solr 3.5.0 以及IKAnal ... -
java生成二维码,qrcode
2012-03-22 15:41 7022通过barcode4j生成 @Controller @R ... -
使用HttpClient 4.1.2调用webservice
2012-01-19 14:22 19260下载httpclient,把压缩包里lib目录的所有jar放到 ... -
Spring MVC3 Hibernate3 Annotation 补充
2011-05-30 11:59 1410通过配置文件进行事务声明 app-config.xml & ... -
Spring MVC3 Hibernate3 Annotation
2011-05-30 11:56 1779web.xml <?xml version=&quo ... -
Tomcat Mod_jk负载均衡Session复制的几点补充
2010-02-24 16:49 1338tomcat和mod_jk进行负载均衡的时候,如果要实现Ses ... -
第一次实际应用Spring MVC
2009-11-17 08:37 1603要做一个简单的投票的东西,看spring mvc的文章已经很久 ...
相关推荐
当需要扩展SpringData的功能时,SpringData MongoDB也提供了一定的扩展机制,例如使用Query DSL扩展进行复杂查询,或者使用Web支持来构建基于SpringData MongoDB的Web应用。 对于那些希望了解如何使用SpringData ...
Spring Data MongoDB Repositories 30.2.4. Embedded Mongo 30.3. Neo4j 30.3.1. Connecting to a Neo4j Database 30.3.2. Using the Embedded Mode 30.3.3. Neo4jSession 30.3.4. Spring Data Neo4j Repositories ...
9.4.5 Spring Integration Java DSL 400 9.4.6 实战 400 第10 章 Spring Boot 开发部署与测试 407 10.1 开发的热部署 407 10.1.1 模板热部署 407 10.1.2 Spring Loaded 407 10.1.3 JRebel 409 10.1.4 spring-boot-...
9.4.5 Spring Integration Java DSL 400 9.4.6 实战 400 第10 章 Spring Boot 开发部署与测试 407 10.1 开发的热部署 407 10.1.1 模板热部署 407 10.1.2 Spring Loaded 407 10.1.3 JRebel 409 10.1.4 spring-boot-...
9.4.5 Spring Integration Java DSL 400 9.4.6 实战 400 第10 章 Spring Boot 开发部署与测试 407 10.1 开发的热部署 407 10.1.1 模板热部署 407 10.1.2 Spring Loaded 407 10.1.3 JRebel 409 10.1.4 spring-boot-...
Spring Data项目在4.0中继续发展,对JPA、MongoDB等数据访问技术的集成更加强大,提供了更多的查询方法和便捷的Repository接口。 10. **异步方法调用**: Spring 4.0允许使用`@Async`注解标记方法以实现异步执行...
Spring Data MongoDB仓库 iii. 29.3. Gemfire iv. 29.4. Solr i. 29.4.1. 连接Solr ii. 29.4.2. Spring Data Solr仓库 v. 29.5. Elasticsearch i. 29.5.1. 连接Elasticsearch ii. 29.5.2. Spring Data Elasticseach...
Spring Data是一个用于简化数据访问层开发的模块,它支持JPA、JDBC、MongoDB等多种数据存储方式。Spring Data提供了自动化的Repository接口实现,使得数据库操作更加简单。 6. **Spring Security** Spring ...
Spring Data项目在5.x版本中也有所更新,支持更多数据存储技术,如MongoDB、Cassandra等,并且增强了对JPA(Java Persistence API)的集成,提供更强大的查询功能。 5. **JDBC和JPA改进** Spring 5.x对JDBC和JPA...
在数据库访问方面,Java支持JDBC的内嵌数据库如h2database,以及NoSQL数据库如Redis、MongoDB和Solr,可以通过Spring Data框架进行集成。 总的来说,Java在微服务架构中扮演着重要角色,其丰富的生态系统提供了多种...
例如,引入了Spring Data JPA依赖后,SpringBoot会自动配置数据源、事务管理器以及JPA的相关配置。 3. **Web开发**:SpringBoot内置了Spring MVC,用于构建RESTful API。在医院信息管理系统中,Web接口通常用于医生...
1. **环境搭建**:首先,需要安装JDK和设置环境变量,然后通过Spring Initializr初始化项目,选择所需的依赖项,如Spring Web、Data JPA、Thymeleaf等。 2. **数据库连接**:SpringBoot可以方便地与各种数据库集成,...
3. **数据转换**:Camel内置了数据转换工具,如Simple语言用于表达式和条件语句,以及DataFormat组件用于数据的序列化和反序列化。 4. **错误处理和事务管理**:Camel提供了强大的错误处理机制,包括异常处理、重试...
这里展示了基于Spring Data Elasticsearch Query的接口测试: #### 4.1 测试数据 创建相关的索引和文档,如城市信息,包含名称和描述等字段。 #### 4.2 测试结果 测试代码执行后,会返回查询结果。例如,当搜索...
如果项目使用Spring,那么了解IoC容器、Spring Boot、Spring MVC和Spring Data等相关概念将很有帮助。 4. **JUnit测试**:Java项目通常包含测试代码,以确保功能的正确性。JUnit是Java最常用的单元测试框架,项目中...
- **MongoDB**: For working with MongoDB databases. - **Mail**: For sending and receiving emails. #### Conclusion Apache Camel 2.0 is a powerful integration framework that simplifies the ...
9. **灵活性**:Querydsl 可以用于任何提供 JPA-like API 的库,如 Spring Data JPA,也可以用于非关系型数据库如 MongoDB,甚至是 Lucene 等全文搜索引擎。 10. **性能优化**:由于 Querydsl 的查询表达式是在编译...