用于从SQL server向MongoDB获取数据的Java代码

用于从SQL server向MongoDB获取数据的Java代码,java,sql-server,mongodb,Java,Sql Server,Mongodb,我已经为我的Mongo SQL代码挣扎了一段时间,仍然需要您的帮助:) 将数据从SQL server数据库传输到MongoDB时出现问题。我的问题是,我不能对我的数据进行AVERAGE()或SUM()之类的计算,因为我在MongoDB中将它们保存为字符串。我认为这些数字应该是整数,因为我是从我的SQL server数据库中获取的,在那里,使用下面的代码将它们存储为整数。现在,我看到在获取值时使用了getString()。这就是为什么在MongoDB中数字是字符串吗?我怎样才能把它们作为整数呢?我

我已经为我的Mongo SQL代码挣扎了一段时间,仍然需要您的帮助:)

将数据从SQL server数据库传输到MongoDB时出现问题。我的问题是,我不能对我的数据进行
AVERAGE()
SUM()
之类的计算,因为我在MongoDB中将它们保存为字符串。我认为这些数字应该是整数,因为我是从我的SQL server数据库中获取的,在那里,使用下面的代码将它们存储为整数。现在,我看到在获取值时使用了
getString()
。这就是为什么在MongoDB中数字是字符串吗?我怎样才能把它们作为整数呢?我真的很想把它们当作数字来处理!另外,SQL server中的一些值是datetime,因此我需要大量的“if”语句和不同的“get”方法来正确获取MongoDB中的所有类型。有人能很好地解决这个问题吗

StringBuilder orderstatus = new StringBuilder();
orderstatus.append("SELECT * FROM dbo.fact_orderstatus");
PreparedStatement t = connect.prepareStatement(orderstatus.toString());  

DBCollection orderstat = db.getCollection("Orderstatus");

ResultSet v = t.executeQuery();
ResultSetMetaData rsm = t.getMetaData();
int column = rsm.getColumnCount();

while (v.next()) {
BasicDBObject orderObj = new BasicDBObject();
for(int x=1; x<column +1; x++){
String namn= rsm.getColumnName(x);

String custNum = (v.getString(x));
if (custNum != null && !custNum.trim().isEmpty()
&& custNum.length() != 0)
orderObj.append(namn, custNum);

}


orderstat.insert(orderObj)
StringBuilder orderstatus=new StringBuilder();
orderstatus.append(“从dbo.fact_orderstatus中选择*);
PreparedStatement t=connect.prepareStatement(orderstatus.toString());
DBCollection orderstat=db.getCollection(“Orderstatus”);
结果集v=t.executeQuery();
ResultSetMetaData rsm=t.getMetaData();
int column=rsm.getColumnCount();
while(v.next()){
BasicDBObject orderObj=新的BasicDBObject();

对于(int x=1;x,可以在结果集中使用getColumnType()方法

由于您使用的是SQL server,我建议您先阅读以下内容:

这个问题/答案可能也会有帮助:

我希望您有SQL表的模式,对吗?您能看看每列的类型,并在此基础上进行适当的获取吗?当然可以,但我必须逐个获取列,我有10个表,每个表中至少有40列。我真的想通过某种循环来解决这个问题!