springmvc mysql mongodb_Mongodb数据库与springmvc整合

这段时间尝试了一下MongoDB,感觉十分易用,方便,相比关系型的数据库来说优势也很大,于是尝试了下使用java连接MongoDB,并进行了 基本的增删改查操作。 首先先在控制台中连接数据库,查看数据库有几个表。 现在,新建一个maven工程,pom.xml中的依赖如下:

1:搭建好springmvc框架这里我们用到的是spring-data中一个集成mongodb的项目,首先在maven中添加对它的依赖。

org.springframework.data

spring-data-mongodb

1.0.0.M5

2:新建一个mongodb.properties文件;基本配置如下

mongo.hostport=172.16.10.247:27017//前面是部署的服务器IP地址,后面是端口号默认的27017

mongo.connectionsPerHost=8

mongo.threadsAllowedToBlockForConnectionMultiplier=4

#\u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4

mongo.connectTimeout=1000

#\u7B49\u5F85\u65F6\u95F4

mongo.maxWaitTime=1500

mongo.autoConnectRetry=true

mongo.socketKeepAlive=true

#Socket\u8D85\u65F6\u65F6\u95F4

mongo.socketTimeout=1500

mongo.slaveOk=true

3:新建一个springmvc与mongo整合的xml文件1.查询当前有哪些数据库: show dbs; 2.对集合的查询 show tables; 3.对集合中文档的查询 db. + 集合名 + .find() 如查询student数据库中score表中的所有文档: use student; #切换到要查寻的数据库db.score.find() 上面一条语句是对所有记录的查询,默认

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

http://www.springframework.org/schema/context/spring-context-3.0.xsd

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">

connections-per-host="${mongo.connectionsPerHost}"

threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}"

connect-timeout="${mongo.connectTimeout}"

max-wait-time="${mongo.maxWaitTime}"

auto-connect-retry="${mongo.autoConnectRetry}"

socket-keep-alive="${mongo.socketKeepAlive}"

socket-timeout="${mongo.socketTimeout}"

slave-ok="${mongo.slaveOk}"

write-number="1"

write-timeout="0"

write-fsync="true"/>

class="org.springframework.data.mongodb.core.mapping.MongoMappingContext">

class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper">

class="org.springframework.data.mongodb.core.convert.MappingMongoConverter">

4:写一个dao文件

@Repository

@Transactional(rollbackFor=Exception.class)

public class BaseMongoDAO{

/**

* spring mongodb 集成操作类

*/

@Autowired private MongoTemplate mongoTemplate;

/*public List find(Query query) {

return (List) mongoTemplate.find(query, this.getEntityClass());

} */

@SuppressWarnings("unchecked")

public List find(Query query, Class clazz) {

return (List) mongoTemplate.find(query, clazz);

}

/*public T findOne(Query query) {

return (T) mongoTemplate.findOne(query, this.getEntityClass());

}  */

@SuppressWarnings("unchecked")

public T findOne(Query query, Class clazz) {

return (T) mongoTemplate.findOne(query, clazz);

}

/*  public void update(Query query, Update update) {

mongoTemplate.findAndModify(query, update, this.getEntityClass());

}  */

public void update(Query query, Update update, Class clazz) {

mongoTemplate.findAndModify(query, update, clazz);

}

//批量更新

public void updatemulti(Query query, Update update, Class clazz) {

mongoTemplate.updateMulti(query, update, clazz);

}

public void save(T entity) {

mongoTemplate.insert(entity);

}

/*public T findById(String id) {

return (T) mongoTemplate.findById(id, this.getEntityClass());

}*/

@SuppressWarnings("unchecked")

public T findById(String id, Class clazz) {

return (T) mongoTemplate.findById(id, clazz);

}

/*public T findById(String id, String collectionName) {

return (T) mongoTemplate.findById(id, this.getEntityClass(), collectionName);

}  */

public Page findPage(Page page,Query query, Class clazz){

long count = this.count(query, clazz);

page.setTotal(count);

int pageNumber = page.getPageNum();

int pageSize = page.getPageSize();

query.skip((pageNumber - 1) * pageSize).limit(pageSize);

List rows = this.find(query, clazz);

page.setRows(rows);

return page;

}

public long count(Query query, Class clazz){

return mongoTemplate.count(query, clazz);

}

public void remove(Query query, Class clazz){

mongoTemplate.remove(query,  clazz);

}

/**

* 获取需要操作的实体类class

*

* @return

*/

private Class getEntityClass(){

return ReflectionUtils.getSuperClassGenricType(getClass());

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值