Java 中使用 SPRING DATA - MONGODB 开发
2012-10-19 12:36
651 查看
Spring Data 提供了一组在 Java 中访问 MongoDB 数据的API,使得我们可以使用类似 Spring 的 JdbcTemplate 类的方式来操作MongoDB,极大地简化了我们的开发步骤。
一、准备工作
和往常的开发步骤一样,首先我们需要准备一系列 jar 包,这里我截了一张图,如下所示。
其中 jar 包 commons-beanutils-1.8.3、commons-lang-2.6、commons-collections-3.2.1、commons-logging-1.1.1、ezmorph-1.0.6、json-lib-2.4,可以不导入,这些包是用来支持项目中使用JSON的。如果需要需要这些包,也可以从我的这篇文章中得到 /article/11317667.html。
spring-data-mongo-1.1.0.M1.zip
mongo-2.9.1.jar
spring-framework-3.1.1.RELEASE.zip
aopalliance-1.0.jar
spring-web-3.2.0.M2.jar
二、数据库连接配置
使用Spring Data 连接 MongoDB 数据库有2种方式:一种是类似JDBC的方式得到连接,另一种是通过Spring读取XML配置文件的方式得到连接。
这里先介绍第一种连接方式,后续会介绍第二种连接。
1. 创建配置文件 “DataSource.properties” 用于存储数据库信息,方便以后修改。内容如下:
2. 获取数据库连接
这里就不介绍负责数据库连接的接口和类了,有兴趣的话可以点击链接查看官方文档:接口 MongoOperations 和类 MongoTemplate。其中MongoTemplate
类实现了接口 MongoOperations。
下面我附上了自己写的MongoUtil类的源代码。该类主要封装了获取MongoTemplate实例的代码。
3. 在MongoDB中创建测试数据数据库、表和用户
MongoDB中创建数据库时,使用命令“Use XXX”,所以需要做一些额外的操作,数据库才会被创建,这里选择创建表“king”,如果不需要,可以使用“db.king.drop()”删除该表。MongoDB详细指令说明文档点此,也可在输入“help”寻求帮助。
4. 编写测试代码,验证数据库连通性
创建测试类TestMongoDB.java
验证数据库记录:
结果与预期一样,在Java 中使用 SPRING DATA - MONGODB 开发成功。
一、准备工作
和往常的开发步骤一样,首先我们需要准备一系列 jar 包,这里我截了一张图,如下所示。
其中 jar 包 commons-beanutils-1.8.3、commons-lang-2.6、commons-collections-3.2.1、commons-logging-1.1.1、ezmorph-1.0.6、json-lib-2.4,可以不导入,这些包是用来支持项目中使用JSON的。如果需要需要这些包,也可以从我的这篇文章中得到 /article/11317667.html。
spring-data-mongo-1.1.0.M1.zip
mongo-2.9.1.jar
spring-framework-3.1.1.RELEASE.zip
aopalliance-1.0.jar
spring-web-3.2.0.M2.jar
二、数据库连接配置
使用Spring Data 连接 MongoDB 数据库有2种方式:一种是类似JDBC的方式得到连接,另一种是通过Spring读取XML配置文件的方式得到连接。
这里先介绍第一种连接方式,后续会介绍第二种连接。
1. 创建配置文件 “DataSource.properties” 用于存储数据库信息,方便以后修改。内容如下:
Host=127.0.0.1 Port=27017 Database=king UserName=king Password=king以上配置分别为:目标数据库所在服务器地址,数据库连接端口,数据库名字,用户名和密码。*请根据实际情况进行配置。
2. 获取数据库连接
这里就不介绍负责数据库连接的接口和类了,有兴趣的话可以点击链接查看官方文档:接口 MongoOperations 和类 MongoTemplate。其中MongoTemplate
类实现了接口 MongoOperations。
下面我附上了自己写的MongoUtil类的源代码。该类主要封装了获取MongoTemplate实例的代码。
package com.report.util; import java.net.UnknownHostException; import java.util.Locale; import java.util.ResourceBundle; import org.springframework.data.authentication.UserCredentials; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.SimpleMongoDbFactory; import com.mongodb.Mongo; public class MongoUtil { private volatile static MongoOperations mongoOperation; private static final String CONFIG_FILE_NAME = "DataSource"; private static final String KEY_HOST = "Host"; private static final String KEY_PORT = "Port"; private static final String KEY_DATABASE = "Database"; private static final String KEY_USERNAME = "UserName"; private static final String KEY_PASSWORD = "Password"; private MongoUtil() { } public static MongoOperations getMongoOperation() { if (mongoOperation == null) { ResourceBundle resourceBundle = ResourceBundle.getBundle( CONFIG_FILE_NAME, Locale.getDefault());//获取配置文件“DataSource.properties” String hostAddr = resourceBundle.getString(KEY_HOST) + ":" + resourceBundle.getString(KEY_PORT); UserCredentials userCredentials = new UserCredentials( resourceBundle.getString(KEY_USERNAME), resourceBundle.getString(KEY_PASSWORD)); try { mongoOperation = new MongoTemplate( new SimpleMongoDbFactory(new Mongo(hostAddr), resourceBundle.getString(KEY_DATABASE), userCredentials)); } catch (UnknownHostException e) { e.printStackTrace(); } } return mongoOperation; } }
3. 在MongoDB中创建测试数据数据库、表和用户
MongoDB中创建数据库时,使用命令“Use XXX”,所以需要做一些额外的操作,数据库才会被创建,这里选择创建表“king”,如果不需要,可以使用“db.king.drop()”删除该表。MongoDB详细指令说明文档点此,也可在输入“help”寻求帮助。
4. 编写测试代码,验证数据库连通性
创建测试类TestMongoDB.java
package com.report.Tests; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import com.report.util.MongoUtil; public class TestMongoDB { private String firstName; private String lastName; TestMongoDB(String firstName, String lastName ){ this.firstName = firstName; this.lastName = lastName; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public static void main(String[] args){ TestMongoDB test = new TestMongoDB("John", "Connor"); MongoUtil.getMongoOperation().insert(test); TestMongoDB stored = MongoUtil.getMongoOperation().findOne(new Query(Criteria.where("firstName").is(test.getFirstName())), TestMongoDB.class); if (stored != null) System.out.println(stored.getFirstName() + " " + stored.getLastName()); } }Eclipse Console 输出信息: John Connor
验证数据库记录:
结果与预期一样,在Java 中使用 SPRING DATA - MONGODB 开发成功。
相关文章推荐
- java之mongodb客户端开发(maven工程,使用mongodb jar包)
- Mongodb程序开发之使用JAVA驱动
- MongoDB程序开发之使用Java驱动
- MongoDB程序开发之使用Java驱动
- 使用 Java Persistence API 与 JavaServer Faces 开发 Web 应用程序(转)
- 关于Java Web开发中Servlet使用Servlet接口的问题
- 使用Notepad开发java的基本步骤
- java桌面应用开发可视化工具windowbuilder详细使用方法
- 从零开始使用Docker构建Java Web开发运行环境
- 面向Java开发人员的Ajax: 结合DWR(Direct Web Remoting)使用Ajax
- 使用Java开发实现OAuth安全认证的应用
- Atitit.uml2 api 的编程代码实现设计uml开发 使用eclipse jar java 版本
- 使用Antlr开发DSL(领域特定语言)-java
- java开发系统内核:使用LDT保护进程数据和代码
- eclipse开发java的web项目时使用SSM框架的方法
- java开发问题总结-4-Maven使用问题汇总
- 传智播客java web 学习,自定义标签的开发和使用(二)
- Java开发之反射的使用
- 使用java开发facebook网站应用程序