目录
MongoDB下载地址:https://www.mongodb.com/download-center
MongoDB工具studio3t下载地址:https://studio3t.com/download/
1.下载安装MongoDB和MongoDB工具
MongoDB下载地址:https://www.mongodb.com/download-center
MongoDB工具studio3t下载地址:https://studio3t.com/download/
2.spring boot集成MongoD
a.pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
b.配置文件application.properties
spring.data.mongodb.database=test
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.username=MongoDB
spring.data.mongodb.password=
3.工具类
a.数据库连接工具
package mongoDB;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoDatabase;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MongoHelper {
private static final Logger logger = LoggerFactory
.getLogger(MongoHelper.class);
@Value("${spring.data.mongodb.database}")
private String DBName;
@Value("${spring.data.mongodb.host}")
private String ServerAddress;
@Value("${spring.data.mongodb.port}")
private int PORT;
public MongoHelper() {
}
public MongoClient getMongoClient() {
MongoClient mongoClient = null;
try {
// 连接到 mongodb 服务
mongoClient = new MongoClient(ServerAddress, PORT);
logger.debug("Connect to mongodb successfully");
} catch (Exception e) {
System.err.println(e.getClass().getName() + ": " + e.getMessage());
}
return mongoClient;
}
public MongoDatabase getMongoDataBase(MongoClient mongoClient) {
MongoDatabase mongoDataBase = null;
try {
if (mongoClient != null) {
// 连接到数据库
mongoDataBase = mongoClient.getDatabase(DBName);
logger.debug("Connect to DataBase successfully");
} else {
throw new RuntimeException("MongoClient不能够为空");
}
} catch (Exception e) {
e.printStackTrace();
}
return mongoDataBase;
}
public MongoDatabase getMongoDataBase() {
MongoDatabase mongoDataBase = null;
try {
// 连接到数据库
mongoDataBase = getMongoDataBase(getMongoClient());
} catch (Exception e) {
e.printStackTrace();
}
return mongoDataBase;
}
public void closeMongoClient(MongoDatabase mongoDataBase,
MongoClient mongoClient) {
if (mongoDataBase != null) {
mongoDataBase = null;
}
if (mongoClient != null) {
mongoClient.close();
}
logger.debug("CloseMongoClient successfully");
}
}
b.MongoDb接口
package mongoDB.util;
import java.util.List;
/**
* MongoDb工具类
*/
public interface IMongoDb{
/**
* 查询条件
* @param field 字段名
* @param value 值
* @return
*/
IMongoDb whereAnd(String field,String value);
/**
* 模糊查询
* //完全匹配
* Pattern pattern = Pattern.compile("^name$", Pattern.CASE_INSENSITIVE);
* //右匹配
* Pattern pattern = Pattern.compile("^.*name$", Pattern.CASE_INSENSITIVE);
* //左匹配
* Pattern pattern = Pattern.compile("^name.*$", Pattern.CASE_INSENSITIVE);
* //模糊匹配
* Pattern pattern = Pattern.compile("^.*name8.*$", Pattern.CASE_INSENSITIVE);
* @param field 字段
* @param value 值
* @return
*/
IMongoDb like(String field,String value);
/**
* 执行表名
* @param tableName 表的名字
*/
List<String> execute(String tableName);
}
c.MongoDB工具类
package mongoDB.util;
import com.mongodb.BasicDBObject;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.smt.interfaces.mongoDB.MongoHelper;
import org.bson.Document;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
/**
* MongoDB数据库查询工具类
* @User myMarksa
* @time 2019年5月23日15:28:44
*
*/
@Service
public class MongoDbDqlUtil implements IMongoDb{
private static final Logger logger = LoggerFactory
.getLogger(MongoDbDqlUtil.class);
@Autowired
private MongoHelper mongoHelper;
private Pattern queryPattern;
private BasicDBObject basicDBObject ;
{
basicDBObject = new BasicDBObject();
}
@Override
public IMongoDb whereAnd (String field , String value) {
basicDBObject.put(field, value);
return this;
}
@Override
public IMongoDb like (String field , String value) {
queryPattern = Pattern.compile(value, Pattern.CASE_INSENSITIVE);
basicDBObject.put(field,queryPattern);
return this;
}
@Override
public List<String> execute (String tableName) {
MongoDatabase db=mongoHelper.getMongoDataBase();
if(null == tableName){
logger.debug("报出异常,table:{}",tableName);
return null;
}
MongoCollection<Document> collection = db.getCollection(tableName);
FindIterable<Document> iterable = collection.find(basicDBObject);
return jsonIrerable(iterable);
}
private List<String> jsonIrerable (FindIterable<Document> iterable) {
MongoCursor<Document> cursor = iterable.iterator();
List<String> strList = new ArrayList<>();
while (cursor.hasNext()) {
Document user = cursor.next();
String jsonString = user.toJson();
strList.add(jsonString);
}
return strList;
}
}