Java操作mongodb数据库
来源:互联网 发布:三国乱世挂机软件 编辑:程序博客网 时间:2024/06/05 04:13
引子
前面演示了mongodb单机环境的搭建和集群环境的搭建,在实际开发中,我们是通过程序来操作mongodb数据库中的数据的。对mongodb数据库的操作和其他数据库一样,无外乎增删改查,这节我们通过java语言来演示下怎么操作mongodb数据库.
开发工具
Eclipse
Maven
这里使用eclipse创建项目,使用maven引入mongodb操作的jar包,使用spring-data-mongodb包,这个是spring提供的对mongodb进行操作的包,包中提供了MongoTemplate模板类来对数据库进行增删改查操作
pom.xml文件
<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mongodb</groupId> <artifactId>mongodbdemo</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>mongodbdemo</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-mongodb</artifactId><version>1.8.1.RELEASE</version></dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies></project>
数据操作
这里演示下怎样向mongodb中scm数据库中的products表进行增删改查.首先创建一个Products对象,包括商品编码,商品名称
注:id对象在插入的时候不需要赋值,mongodb会自动生成
Products.java
/** * */package com.mongodb;public class Products {public String id;public String code;public String name;public String getId() {return id;}public void setId(String id) {this.id = id;}public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getName() {return name;}public void setName(String name) {this.name = name;}}
定义连接mongodb数据库的配置文件spring-mongodb.xml,可以指定使用连接的类,连接的数据库,用户名和密码
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:mongo="http://www.springframework.org/schema/data/mongo"xsi:schemaLocation=" http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"><!-- 集群配置 --><mongo:mongo id="mongo"replica-set="192.168.159.135:27017,192.168.159.136:27017,192.168.159.137:27017"><mongo:options connections-per-host="8"threads-allowed-to-block-for-connection-multiplier="4"connect-timeout="1000" max-wait-time="1500" auto-connect-retry="true"socket-keep-alive="true" socket-timeout="3000" slave-ok="true"write-number="1" write-timeout="0" write-fsync="true" /></mongo:mongo><!-- 单机配置 --><!-- <mongo:mongo id="mongo"host="192.168.159.135" port="27017"> --><!-- <mongo:options connections-per-host="8" --><!-- threads-allowed-to-block-for-connection-multiplier="4" --><!-- connect-timeout="1000" max-wait-time="1500" auto-connect-retry="true" --><!-- socket-keep-alive="true" socket-timeout="3000" slave-ok="true" --><!-- write-number="1" write-timeout="0" write-fsync="true" /> --><!-- </mongo:mongo> --><mongo:db-factory id="mongoDbFactory" dbname="scm"username="dba" password="dba" mongo-ref="mongo" /><bean id="mappingContext" class="org.springframework.data.mongodb.core.mapping.MongoMappingContext" /><!-- 去掉_class属性 --><bean id="defaultMongoTypeMapper" class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper"><constructor-arg name="typeKey"><null /></constructor-arg></bean><bean id="mappingMongoConverter" class="org.springframework.data.mongodb.core.convert.MappingMongoConverter"><constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /><constructor-arg name="mappingContext" ref="mappingContext" /><property name="typeMapper" ref="defaultMongoTypeMapper" /></bean><bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"><constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /><constructor-arg name="mongoConverter" ref="mappingMongoConverter" /></bean></beans>
创建spring.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation=" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"><context:annotation-config/><import resource="classpath:spring-mongodb.xml" /><context:component-scan base-package="com.mongodb" /></beans>
创建操作数据库的dao层 DataDao.java
/** * */package com.mongodb;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.query.Criteria;import org.springframework.data.mongodb.core.query.Query;import org.springframework.data.mongodb.core.query.Update;import org.springframework.stereotype.Component;@Componentpublic class DataDao {@Autowiredprivate MongoTemplate mongoTemplate;/** * * TODO(添加) * * @author * @param products * @date 2016年10月24日 下午5:30:38 */public void insert(Products products) {mongoTemplate.insert(products);}/** * * TODO(查询所有) * * @author * @return * @date 2016年10月24日 下午5:31:02 */public List<Products> QueryAll() {return mongoTemplate.findAll(Products.class);}/** * * TODO(删除) * * @author * @param id * @date 2016年10月24日 下午5:31:16 */public void delete(String id) {Query query = new Query();query.addCriteria(Criteria.where("id").is(id));mongoTemplate.remove(query, Products.class);}/** * * TODO(更新) * * @author * @param products * @date 2016年10月25日 下午4:53:28 */public void updateCode(Products products) { Query query = new Query(); query.addCriteria(Criteria.where("code").is(products.code)); mongoTemplate.updateFirst(query, new Update().set("name",products.name), Products.class);}public Products findOne(String id) {return mongoTemplate.findById(id, Products.class);} }
启动项目,调用Dao层的增删改查方法
APP.JAVA
package com.mongodb;import java.awt.List;import java.util.ArrayList;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.data.mongodb.core.MongoTemplate;/** * Hello world! * */public class App { public static void main( String[] args ) { try { System.out.println("初始化配置文件"); ApplicationContext appContext=new ClassPathXmlApplicationContext("spring.xml"); // MongoTemplate mongoTemplate=(MongoTemplate)appContext.getBean("mongoTemplate"); DataDao dao = (DataDao)appContext.getBean("dataDao"); System.out.println("插入数据"); //插入 Products products=new Products(); products.code="0001"; products.name="上衣"; dao.insert(products); System.out.println("查询"); //查询 ArrayList<Products> list=(ArrayList<Products>) dao.QueryAll(); System.out.println(list.size()); //删除 if (list.size()>0) { System.out.println("删除"); dao.delete(list.get(0).id);} System.out.println("修改"); Products p1=new Products(); p1.code="0001"; p1.name="裤子"; //修改 dao.updateCode(p1); //查询单个实体 Products p=dao.findOne("580dd42871f9a08a424e07da"); if (p!=null) {System.out.println(p.getCode()+"--"+p.getName()+"--"+p.getId());} System.out.println("执行成功"); } catch(Exception e) { System.out.println("执行异常"+e.getMessage()); } }}
DEMO下载http://download.csdn.net/detail/zx13525079024/9663629
0 0
- java 操作MongoDB数据库
- java操作MongoDB数据库
- java操作MongoDB数据库
- java操作mongodb数据库
- java操作MongoDB数据库
- java操作mongodb数据库
- java操作MongoDB数据库
- Java操作mongodb数据库
- java操作MongoDB数据库
- java操作mongoDB数据库
- java操作MongoDB数据库
- java操作MongoDB数据库
- mongodb系列之一:java操作mongodb数据库
- Java操作MongoDB NoSQL数据库
- java操作NoSQL数据库mongodb
- java操作mongoDB数据库(一)
- 用java操作MongoDB数据库
- MongoDB:MongoDB数据库操作
- Allegro设置及实用小技巧(一)
- 后台初始化日期传给前端jsp页面
- process.waitfor()发生阻塞
- Unity3D——利用协同程序实现游戏中的AI(自动行走和发现目标)
- App Store 内购项目配置
- Java操作mongodb数据库
- 创新工场笔试
- jsp实现自动登录(Cookie机制)
- Qt:QML控件类关系图
- Quartz-java定时任务实现
- HTML5开发前景是否还能入坑
- tcp五层模型中 物理层与数据链路层的区别
- P2P通信标准协议:SIP
- 算法导论第十六章贪心算法-思考题16-1找零问题