public int AddTradesBatchToVault(List<MatchProps> mProps, String tradeDateTime) throws SQLException
	{
		int retval = 0;
		Connection con =  null;
		SimpleDateFormat df =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		
		java.sql.PreparedStatement psTrades =  null;
		String psTradesSQL= "INSERT OR IGNORE INTO trades(TradeDateTime,ExpireDateTime,BuyCpt," + 
				"SellCpt, " +
				"TradeStatus, " +
				"TradeType," +
				"Asset , " + 
				"Amount," +
				"Price," +
				"MatchTradeId," +
				"Vault,"+
				"mprop1,"+
				"mprop2,"+
				"mprop3,UserId)" +
				"VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
		try {
			Class.forName("org.sqlite.JDBC");
			try {
					con = DriverManager.getConnection(VxConnectionString);
					
					con.setAutoCommit(false);
					psTrades = con.prepareStatement(psTradesSQL);
					
					for(MatchProps mp : mProps)
					{
						psTrades.setString(1, tradeDateTime);
						psTrades.setString(2,df.format(mp.ExpireDateTime));
						psTrades.setString(3, mp.BuyCpt);
						psTrades.setString(4, mp.SellCpt);
						psTrades.setString(5, mp.TradeStatus);
						psTrades.setString(6, mp.TradeType);
						psTrades.setString(7, mp.Asset);
						psTrades.setLong(8, mp.Amount);
						psTrades.setDouble(9, mp.Price.doubleValue());
						psTrades.setLong(10, mp.MatchTradeId);
						psTrades.setString(11, mp.Vault);
						psTrades.setString(12, mp.mprop1);
						psTrades.setString(13, mp.mprop2);
						psTrades.setString(14, mp.mprop3);
						psTrades.setString(15, mp.UserId);
						psTrades.addBatch();
					}
					
					int[]  recAdded = psTrades.executeBatch();
					con.commit();
					for(int i = 0; i < recAdded.length; i++)
						if(recAdded[i]==1)
							retval++;
				
				}
				catch (SQLException e)
				{
					con.rollback();
					System.out.println(e.getMessage());
				}
				finally 
				{
					if(psTrades != null)
						psTrades.close();
					if(con != null)
						con.close();
				}
			}
			catch (ClassNotFoundException cnfe)
			{
				System.out.println(cnfe.getMessage());	
			}
		
		return retval;
	}