package com;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import jdbc.ConnectionUtil;
import org.json.JSONException;
import org.json.JSONObject;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;
/*
* 璇诲彇浜戣鍫侻ongo琛屼负鏁版嵁搴?2017Actions涓殑璁板綍锛岀劧鍚庢彃鍏ュ埌鏈湴MysQL
*/
public class XueShiTongJiMongo2MySQL {
public static Connection con = null;
public static Statement stmt = null;
public static ResultSet rs = null;
public static PreparedStatement pstmt = null;
private static long online = 0;
public static long getOnline() {
return online;
}
public static void raise() {
online++;
}
public static void reduce() {
online--;
}
public static boolean isJson(String value) {
try {
new JSONObject(value);
} catch (JSONException e) {
return false;
}
return true;
}
private Connection getConnection() {
ConnectionUtil ut = new ConnectionUtil();
return (Connection) ut.openConnection();
}
public void insert_course_totals() throws SQLException {
// TODO Auto-generated method stub
con = this.getConnection();
con.setAutoCommit(true);
String sql = "insert into course_totals("
+ "_id,userID,learningTime,courseID,"
+ "courseTotalTime,studentCount,"
+ "courseAverageTime,SystemAppId"
+ ") values(?,?,?,?,?,?,?,?)";//插入语句
System.out.print("--------sql--------"+sql);
pstmt = con.prepareStatement(sql);
Mongo mongo = new Mongo("127.0.0.1", 27017);
DB db = mongo.getDB("XueShiTongJi");
// Set<String> colletcionArray = db.getCollectionNames();
int totalNum = 0;
DBCollection dbCollection = db.getCollection("course_totals");
DBCursor dbCursor = dbCollection.find();
int recordNum =dbCollection.find().count();//一个集合中记录的条数
System.out.println("----总记录数:"+recordNum);
for (int i = 0; i <recordNum; i++) {
System.out.println("-----第-"+i+" 个记录");
BasicDBObject basicDBObject = (BasicDBObject)dbCursor.next();
BasicDBObject valueDBObject = (BasicDBObject)basicDBObject.get("value");
// System.out.println("-----1-valueDBObject----"+valueDBObject);
String _id = basicDBObject.getString("_id");
// System.out.println("-----2-_id----"+_id);
BasicDBObject usersObject = (BasicDBObject)valueDBObject.get("Users");
// System.out.println("-----3-usersObject----"+usersObject);
double TotalTime = valueDBObject.getDouble("Total");//课程所有学生总学时
String courseID = valueDBObject.getString("CourseId");//课程ID
String SysAppId = valueDBObject.getString("SysAppId");
double count = valueDBObject.getDouble("Count");//学生人数
double average = valueDBObject.getDouble("Average");//平均学时
Set<String> userIDSet = usersObject.keySet();
for (String userID:userIDSet) {
double userLearningTime = usersObject.getDouble(userID);
pstmt.setString(1, _id);
pstmt.setString(2, userID);
pstmt.setDouble(3, userLearningTime);
pstmt.setString(4, courseID);
pstmt.setDouble(5, TotalTime);
pstmt.setDouble(6, count);
pstmt.setDouble(7, average);
pstmt.setString(8, SysAppId);
pstmt.executeUpdate();
}
}
totalNum += recordNum;
System.out.println("集合中记录条数:"+totalNum);
System.out.println("总数据量"+totalNum);
dbCursor.close();
pstmt.close();
con.close();
}
public void insert_course_user_learning_units() throws SQLException {
// TODO Auto-generated method stub
con = this.getConnection();
con.setAutoCommit(true);
String sql = "insert into course_user_learning_units("
+ "_id,userID,SystemAppId,courseID,"
+ "learningUnitID,learningUnitTime,"
+ "totalLearningUnitTime"
+ ") values(?,?,?,?,?,?,?)";//插入语句
System.out.print("--------sql--------"+sql);
pstmt = con.prepareStatement(sql);
Mongo mongo = new Mongo("127.0.0.1", 27017);
DB db = mongo.getDB("XueShiTongJi");
// Set<String> colletcionArray = db.getCollectionNames();
int totalNum = 0;
DBCollection dbCollection = db.getCollection("course_user_learning_units");
DBCursor dbCursor = dbCollection.find();
int recordNum =dbCollection.find().count();//一个集合中记录的条数
System.out.println("----总记录数:"+recordNum);
// dbCursor.
for (int i = 0; i <recordNum; i++) {
System.out.println("-----第-"+i+" 个记录");
BasicDBObject basicDBObject = (BasicDBObject)dbCursor.next();
BasicDBObject valueDBObject = (BasicDBObject)basicDBObject.get("value");
// System.out.println("-----1-valueDBObject----"+valueDBObject);
String _id = basicDBObject.getString("_id");
// System.out.println("-----2-_id----"+_id);
String userID = valueDBObject.getString("UserId");
String SysAppId = valueDBObject.getString("SysAppId");
String courseID = valueDBObject.getString("CourseId");//课程ID
double TotalTime = valueDBObject.getDouble("Total");//此学生的所有单元总学时
BasicDBObject learningUnitsObject = (BasicDBObject)valueDBObject.get("LearningUnits");
// System.out.println("-----3-usersObject----"+usersObject);
Set<String> unitDSet = learningUnitsObject.keySet();
for (String unitID:unitDSet) {
double unitLearningTime = learningUnitsObject.getDouble(unitID);
pstmt.setString(1, _id);
pstmt.setString(2, userID);
pstmt.setString(3, SysAppId);
pstmt.setString(4, courseID);
pstmt.setString(5, unitID);
pstmt.setDouble(6, unitLearningTime);
pstmt.setDouble(7, TotalTime);
pstmt.executeUpdate();
}
}
totalNum += recordNum;
System.out.println("集合中记录条数:"+totalNum);
System.out.println("总数据量"+totalNum);
dbCursor.close();
pstmt.close();
con.close();
}
public void insert_course_user_weeks() throws SQLException {
// TODO Auto-generated method stub
con = this.getConnection();
con.setAutoCommit(true);
String sql = "insert into course_user_weeks("
+ "_id,CourseId,SysAppId,UserId,"
+ "weekID,weekLearningTime"
+ ") values(?,?,?,?,?,?)";//插入语句
System.out.print("--------sql--------"+sql);
pstmt = con.prepareStatement(sql);
Mongo mongo = new Mongo("127.0.0.1", 27017);
DB db = mongo.getDB("XueShiTongJi");
// Set<String> colletcionArray = db.getCollectionNames();
int totalNum = 0;
DBCollection dbCollection = db.getCollection("course_user_weeks");
DBCursor dbCursor = dbCollection.find();
int recordNum =dbCollection.find().count();//一个集合中记录的条数
System.out.println("----总记录数:"+recordNum);
for (int i = 0; i <recordNum; i++) {
System.out.println("-----第-"+i+" 个记录");
BasicDBObject basicDBObject = (BasicDBObject)dbCursor.next();
BasicDBObject valueDBObject = (BasicDBObject)basicDBObject.get("value");
// System.out.println("-----1-valueDBObject----"+valueDBObject);
String _id = basicDBObject.getString("_id");
// System.out.println("-----2-_id----"+_id);
String userID = valueDBObject.getString("UserId");
String SysAppId = valueDBObject.getString("SysAppId");
String courseID = valueDBObject.getString("CourseId");//课程ID
BasicDBObject weekObject = (BasicDBObject)valueDBObject.get("Weeks");
// System.out.println("-----3-usersObject----"+usersObject);
Set<String> weekDSet = weekObject.keySet();
for (String weekID:weekDSet) {
double weekTime = weekObject.getDouble(weekID);
pstmt.setString(1, _id);
pstmt.setString(2, cour
评论0
最新资源