SSM框架中使用mongodb记录日志。

6 篇文章 0 订阅
1 篇文章 0 订阅

1.首先需要在service层中引入
相当于@Autowired

@Value("${mongo.taskLog.database}")
	private String dataBase;
	@Value("${mongo.taskLog.collection}")
	private String collectionName;

2.在Service的方法中直接创建连接,存储的例子。
//连接数据库

 MongoClient mongoClient = new MongoClient( "172.26.xxx.xxx" , 27017 );
    MongoDataBase  mongoDataBase = MongoManager.getDB(dataBase);
    MongoCollection<Document> mongoCollection = mongoDatabase.getCollection(collectionName);
    Document document = new Document(); //mongo的存取都是Document形式的。
    document.put("字段名称",属性值);
    mongoCollection.insertOne(document);

3.查询。

public List<document> listInfo () {     //根据返回的list是实体类还是document来定义返回值类型
//连接数据库
    MongoClient mongoClient = new MongoClient( "192.168.0.xxx" , 27017 );
    MongoDataBase  mongoDataBase = MongoManager.getDB(dataBase);
    MongoCollection<Document> mongoCollection = mongoDatabase.getCollection(collectionName);
    //new 一个查询类
    ParamQuery query = new ParamQuery;
    //创建一个list用于返回document,想返回实体类就不用创建
    List<Document> list = new ArrayList<>();
    //new一个list用于存放封装的实体类,想直接返回document就不用创建
    List<Pojo> listPojo = new ArrayList<>();
    //根据info_id查询
    query.put("info_id",11);
    //根据日期时间查询
    query.put("time",new ParamQuery("$gte","2019-06-17 12:00:00").append("$lte","2019-06-18 12:00:00"));
    //模糊查询
    Pattern pattern =Pattern.compile("^.*王.*$",Pattern.Case_INSENSITIVE);
    query.put("user_name",pattern);
    //查询执行,sort是排序,根据什么排序,skip是分页,从0条查到10条。
    FindIterable<Document> findIterable = mongoCollection.find(query).sort(update_time).skip(0).limit(10);
    MongoCursor<Document> mongoCurse = findIterable .iterator();
    while(mongoCurse.hasNext()){
    Document document =mongoCurse.next();
    //设置查询出来的时间格式,如果想返回document,做到这步就可以直接返回list
    document.put("update_time" , new SimpleDateFormat("yyy-MM-dd HH:mm:ss").format(new   Date(document.getLong("update_time"))));
   /* //如果想封装成对象就按照以下的操作(/* */里面的内容)
    //new一个实体类
     Pojo pojo = new Pojo();
    //把查询出来的结果转成jsonObject
     JSONObject jsonObject = JSONObject(document.toJson().toString);
    pojo.setUserName(jsonObject .getString("user_name"));
    pojo.setUserAddress(jsonObject .getString("user_address"));
    listPojo.add(Pojo);   //注意返回值的集合需要更改*/
    list.add(document);  //直接返回document的list
                   }
                 return list;    //controller 层接收就可以了,document的list
                // return listPojo;  //返回的是实体类的集合
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值