我控制插入或未插入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();
}
}
答案 0 :(得分:2)
正如文档中所述,如果写入失败,您将获得MongoWriteConcernException
或MongoWriteException
您可以像这样调整代码:
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();
}