MongoDB检查插入

时间:2016-11-24 17:30:30

标签: java mysql mongodb jdbc

我控制插入或未插入mysql的数据如下

public boolean addUser(User user) throws Exception {

    boolean isRegister=false;

    Connection conn=null;
    PreparedStatement ps=null;
    ResultSet rs=null;

    try{

        String sql="insert into users(username,email,pasword) values(?,?,?)";

        conn=dataSource.getConnection();

        ps=conn.prepareStatement(sql);

        ps.setString(1, user.getUsername());
        ps.setString(2, kullanici.getEmail());
        ps.setString(3, kullanici.getPassword());

        int success=ps.executeUpdate();

        if(success>0){
            isRegister=true;
        }

        return isRegister;
    }finally{
        baglantiSonlandir(conn, null, ps);
    }


}

如何在MongoDB中实现此过程? 我写了一些代码,但是我没有实现插入数据或没有插入到db.My中的MongoDb代码如下;

public boolean addUser(User user) throws Exception {

    boolean isRegister=false;

    MongoClient client=null;
    MongoDatabase database=null;

    try{

        client=new MongoClient("localhost", 27017);
        database=client.getDatabase("ogryonsis");

        MongoCollection collection=database.getCollection("users");

        Document document=new Document();
        document.put("username", user.getUserName());
        document.put("email", user.getEmail());
        document.put("password", user.getPassword());

        collection.insertOne(document);

        //int success ->I didnt find for here appropriate code  

        if(success>0){
            isRegister=true;
        }

        return isRegister;
    }finally{
        client.close();
    }

}

2 个答案:

答案 0 :(得分:2)

正如文档中所述,如果写入失败,您将获得MongoWriteConcernExceptionMongoWriteException

您可以像这样调整代码:

isRegister=true;
try {
  collection.insertOne(document);
  }
  catch (MongoServerException ex {
    isRegister=false;
  }

答案 1 :(得分:0)

insertOne被定义为void方法。理想的方法是将insertOne语句包装在try-catch块中。显然,如果有任何异常,插入是不成功的。

  

MongoWriteException - 如果由于某些其他故障导致写入失败   特定于insert命令的MongoWriteConcernException - 如果是   写入失败,因为无法满足写入问题   MongoException - 如果由于某些其他失败而导致写入失败

如果您使用的是Spring,则可以执行此操作。

MongoOperations mongoOperations = getMongoConnection();

        try {
            mongoOperations.insert(order);
        } catch (DuplicateKeyException de) {
            de.printStackTrace();
        }